[Ace-users] Re: [ace-bugs] Changing Proactor implementation on Windows

Johnny Willemsen jwillemsen at remedy.nl
Thu Sep 6 04:15:14 CDT 2007


Hi,

I didn't follow the original emails, but NULL is not allowed to be used, use
0, also make sure sourceline length is max 80 characters.

Johnny 

> -----Original Message-----
> From: ace-bugs-bounces at cse.wustl.edu 
> [mailto:ace-bugs-bounces at cse.wustl.edu] On Behalf Of BALCIK, Erman
> Sent: Thursday, September 06, 2007 10:42 AM
> To: schmidt at dre.vanderbilt.edu
> Cc: ace-bugs at cse.wustl.edu
> Subject: Re: [ace-bugs] Changing Proactor implementation on Windows
> 
> Hi Doug,
> 
> In the attachment, one of the easiest solutions exists,
> which won't effect your overall design.
> I guess you ve added attribute 'win32_proactor_' to class
> ACE_Win32_Asynch_Operation but class ACE_Proactor(there is 
> only declaration)
> because of decoupling and abstraction purposes.
> 
> Anyway the solution requires ACE_Proactor.h, which means
> attribute 'win32_proactor_' is no longer necessary
> (if you don't have other issues while putting it).
> However, I did not remove it in the solution due to the fact that
> It affects lots of classes. Therefore, the changes I made are 
> minimal to correct
> the code.
> 
> If you inform me about your approach to the problem?, I would 
> appreciate it.
> 
> Best regards
> 
> Erman BALCIK
> 
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: schmidt at dre.vanderbilt.edu [mailto:schmidt at dre.vanderbilt.edu] 
> Gesendet: Wednesday, September 05, 2007 4:26 PM
> An: BALCIK, Erman
> Cc: ace-bugs at cse.wustl.edu
> Betreff: Re: [ace-bugs] Changing Proactor implementation on Windows 
> 
> 
> Hi Erman,
> 
>    Thanks very much for using the PRF.
> 
> > ACE VERSION: 5.6
> > 
> > HOST MACHINE and OPERATING SYSTEM:
> > 
> > Windows as the OS, but the problem is not related with WinSOCK
> > 
> > TARGET MACHINE and OPERATING SYSTEM, if different from HOST: ---
> > 
> > COMPILER NAME AND VERSION (AND PATCHLEVEL): not relevant
> > 
> > THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
> > 
> > specific file, simply state which one]: ---
> > 
> > THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
> > 
> > use a link to a platform-specific file, simply state which one
> > 
> > (unless this isn't used in this case, e.g., with Microsoft Visual
> > 
> > C++)]: ---
> > 
> > CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
> > 
> > (used by MPC when you generate your own makefiles): ---
> > 
> > AREA/CLASS/EXAMPLE AFFECTED:
> > 
> > [What example failed? What module failed to compile?]
> > 
> > DOES THE PROBLEM AFFECT:
> > 
> > COMPILATION? NO
> > 
> > LINKING? NO
> > 
> > EXECUTION? NO Segmentation faults
> > 
> > OTHER (please specify)?
> > 
> > The problem is somehow logical.It affects user applications
> > 
> > using asynchronous communication on Windows.
> > 
> > SYNOPSIS:
> > 
> > Changing Proactor implementation on Windows
> > 
> > DESCRIPTION:
> > 
> > In file Win32_Asynch_IO.cpp, class ACE_WIN32_Asynch_Operation
> > 
> > has an attribute called "win32_proactor_" as a ACE_Proactor 
> implementation class,
> > 
> > which is only set in the constructor. 
> ACE_WIN32_Asynch_Operation::open function
> > 
> > gets a pointer to a ACE_Proactor as a parameter. However, 
> function does not use
> > 
> > this parameter or its implementation class instead of the 
> value of "win32_proactor_"
> > 
> > already set in constructor.Although a different Proactor is 
> provided, this function
> > 
> > calls "register_handle" function of the old 
> "win32_proactor_".But logically,
> > 
> > the proactor instance given in "open" should be used in the 
> communication.
> > 
> > This can work in singleton case, but can be a bug in 
> applications using multiple Proactors.
> 
> Could you please send us patches (i.e., via "unified diff") 
> relative to
> 5.6 to fix this?  If so, we'll integrate this into the upcoming 5.6.1
> "bug fix only" beta.
> 
> Thanks,
> 
>         Doug
> 



More information about the Ace-users mailing list