summaryrefslogtreecommitdiff
path: root/examples/Reactor/Proactor/README
blob: 29f2a0b1832a096824e74322cad0d3b8a302b20d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
$Id$

This README file lists all the example applications for the Proactor framework. 

Test/Example Applications for Proactor:
=========================================

The following tests are available.
        
o $ACE_ROOT/tests/Aio_Platform_Test.cpp : Tests basic limits
        pertaining to the  POSIX features 

o $ACE_ROOT/examples/Reactor/Proactor/test_aiocb.cpp    : 
        This is a C++ program for testing the AIOCB (AIO Control
        Blocks) based completion approach which uses <aio_suspend> for
        completion querying. 

o $ACE_ROOT/examples/Reactor/Proactor/test_aiosig.cpp   : This is a
        C++ program for testing the Signal based completion approach
        that uses <sigtimedwait> for completion querying. 

o $ACE_ROOT/examples/Reactor/Proactor/test_aiocb_ace.cpp: Portable
        version of test_aiocb.cpp. (Same as test_aiocb.cpp, but uses
        ACE_DEBUGs instead of printf's and ACE_Message_Blocks instead
        of char*'s. 

o $ACE_ROOT/examples/Reactor/Proactor/test_aiosig_ace.cpp: Portable
        version of test_aiosig.cpp. (Same as test_aiosig.cpp, but uses
        ACE_DEBUGs instead of printf's and ACE_Message_Blocks instead
        of char*'s. 

o test_proactor.cpp (with ACE_POSIX_AIOCB_Proactor)     : Test for
        ACE_Proactor which uses AIOCB (AIO Control Blocks) based
        completions strategy Proactor. (#define
        ACE_POSIX_AIOCB_PROACTOR in the config file, but this is the
        default option)

o test_proactor.cpp (with ACE_POSIX_SIG_Proactor)     : Test for
        ACE_Proactor which uses real time signal based completion
        strategy proactor. (#define ACE_POSIX_SIG_PROACTOR in the
        config file)

o test_multiple_loops.cpp       : This example application shows how
        to write programs that combine the Proactor and Reactor event
        loops. This is possible only on WIN32 platform.
       
o test_timeout.cpp      : Multithreaded application testing the Timers
        mechanism of the Proactor.

o test_timeout_st.cpp   : Single-threaded version of test_timeout.cpp.

o post_completions.cpp  : Tests the completion posting mechanism of
        the Proactor.  

o test_end_event_loop.cpp : Tests the event loop mechanism of the
        Proactor. 
        
o test_cancel.cpp         : Tests <cancel> interface of the
        Asynch_Operation class.
        
Behavior of POSIX AIO of various platforms:
==========================================

Sun 5.6 :       POSIX4 Real-Time signals implementation is broken in
                this platform. 
                Only POSIX AIOCB Proactor works in this platform.
                Therefore, it is not possible to use multiple threads
                with in the framework.

Sun 5.7 :       AIOCB and SIG Proactors work fine.

LynxOS 3.0.0 :  <pthread_sigmask> is not available in this
                platform. So, only AIOCB Proactor works here.