summaryrefslogtreecommitdiff
path: root/ace/Proactor_Impl.h
diff options
context:
space:
mode:
authoralex <alex@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-04-25 03:59:50 +0000
committeralex <alex@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-04-25 03:59:50 +0000
commit659eac2b1d0cc147a54653ab516710dc05fc9674 (patch)
treea1ca7ec32d41c7914d56c968a2be0233cd285f86 /ace/Proactor_Impl.h
parenta8e4540b979e90ce80f9a131b1b2d3f905d2e7d0 (diff)
downloadATCD-659eac2b1d0cc147a54653ab516710dc05fc9674.tar.gz
- Completed Multithreading of POSIX_SIG_Proactor.
- Introduced another constructor for ACE_POSIX_SIG_Proactor for taking signal mask to be used with the Proactor. - Thanks to Dave Butenhof <butenhof@zko.dec.com> for helping a lot to understand the various things in the POSIX4 standard. - Thanks to Dave suggestion of keeping null_handler for the sigaction to real-time signals. With this and a couple of other correct POSIX things SIG proactor is now working with in Solaris 2.7. - Lynx OS doesnt support <pthread_sigmask>, so it couldnt be multithreaded. Enabled AIOCB_Proactor for this platform. - Added an example to make use of the real-time signal numbers for the asynchronous I/O calls.
Diffstat (limited to 'ace/Proactor_Impl.h')
-rw-r--r--ace/Proactor_Impl.h20
1 files changed, 11 insertions, 9 deletions
diff --git a/ace/Proactor_Impl.h b/ace/Proactor_Impl.h
index 347de43fcd7..edae3452e1a 100644
--- a/ace/Proactor_Impl.h
+++ b/ace/Proactor_Impl.h
@@ -113,7 +113,7 @@ public:
ACE_Message_Block &message_block,
u_long bytes_to_read,
const void* act,
- ACE_HANDLE event,
+ ACE_HANDLE event = ACE_INVALID_HANDLE,
int priority = 0,
int signal_number = ACE_SIGRTMIN) = 0;
// Create the correct implementation class for ACE_Asynch_Read_Stream::Result class.
@@ -123,7 +123,7 @@ public:
ACE_Message_Block &message_block,
u_long bytes_to_write,
const void* act,
- ACE_HANDLE event,
+ ACE_HANDLE event = ACE_INVALID_HANDLE,
int priority = 0,
int signal_number = ACE_SIGRTMIN) = 0;
// Create the correct implementation class for ACE_Asynch_Write_Stream::Result.
@@ -135,7 +135,7 @@ public:
const void* act,
u_long offset,
u_long offset_high,
- ACE_HANDLE event,
+ ACE_HANDLE event = ACE_INVALID_HANDLE,
int priority = 0,
int signal_number = ACE_SIGRTMIN) = 0;
// Create the correct implementation class for ACE_Asynch_Read_File::Result.
@@ -147,7 +147,7 @@ public:
const void* act,
u_long offset,
u_long offset_high,
- ACE_HANDLE event,
+ ACE_HANDLE event = ACE_INVALID_HANDLE,
int priority = 0,
int signal_number = ACE_SIGRTMIN) = 0;
// Create the correct implementation class for ACE_Asynch_Write_File::Result.
@@ -158,7 +158,7 @@ public:
ACE_Message_Block &message_block,
u_long bytes_to_read,
const void* act,
- ACE_HANDLE event,
+ ACE_HANDLE event = ACE_INVALID_HANDLE,
int priority = 0,
int signal_number = ACE_SIGRTMIN) = 0;
// Create the correct implementation class for ACE_Asynch_Accept::Result.
@@ -173,7 +173,7 @@ public:
u_long bytes_per_send,
u_long flags,
const void *act,
- ACE_HANDLE event,
+ ACE_HANDLE event = ACE_INVALID_HANDLE,
int priority = 0,
int signal_number = ACE_SIGRTMIN) = 0;
// Create the correct implementation class for ACE_Asynch_Transmit_File::Result.
@@ -181,10 +181,12 @@ public:
virtual ACE_Asynch_Result_Impl *create_asynch_timer (ACE_Handler &handler,
const void *act,
const ACE_Time_Value &tv,
- ACE_HANDLE event,
+ ACE_HANDLE event = ACE_INVALID_HANDLE,
int priority = 0,
- int signal_number = ACE_SIGRTMIN) = 0;
- // Create the correct implementation object for the Timer result.
+ int signal_number = 0) = 0;
+ // Create the correct implementation object for the Timer
+ // result. POSIX_SIG_Proactor will create a Timer object with a
+ // meaningful signal number, if you leave the signal number as 0.
};
#endif /* (ACE_WIN32 && ACE_HAS_WINCE) || ACE_HAS_AIO_CALLS */