diff options
Diffstat (limited to 'ace')
-rw-r--r-- | ace/Makefile | 1234 | ||||
-rw-r--r-- | ace/Makefile.am | 4 | ||||
-rw-r--r-- | ace/Makefile.bor | 4 | ||||
-rw-r--r-- | ace/OS.cpp | 250 | ||||
-rw-r--r-- | ace/OS.h | 272 | ||||
-rw-r--r-- | ace/OS.i | 43 | ||||
-rw-r--r-- | ace/OS_String.cpp | 30 | ||||
-rw-r--r-- | ace/Thread_Adapter.cpp | 239 | ||||
-rw-r--r-- | ace/Thread_Adapter.h | 169 | ||||
-rw-r--r-- | ace/Thread_Adapter.inl | 44 | ||||
-rw-r--r-- | ace/Thread_Control.cpp | 81 | ||||
-rw-r--r-- | ace/Thread_Control.h | 101 | ||||
-rw-r--r-- | ace/Thread_Control.inl | 42 | ||||
-rw-r--r-- | ace/Thread_Exit.cpp | 104 | ||||
-rw-r--r-- | ace/Thread_Exit.h | 78 | ||||
-rw-r--r-- | ace/Thread_Hook.cpp | 25 | ||||
-rw-r--r-- | ace/Thread_Hook.h | 54 | ||||
-rw-r--r-- | ace/Thread_Manager.cpp | 165 | ||||
-rw-r--r-- | ace/Thread_Manager.h | 1 | ||||
-rw-r--r-- | ace/Thread_Manager.i | 39 | ||||
-rwxr-xr-x | ace/ace.icc | 4 |
21 files changed, 1954 insertions, 1029 deletions
diff --git a/ace/Makefile b/ace/Makefile index 11684bb4595..3170b0cadff 100644 --- a/ace/Makefile +++ b/ace/Makefile @@ -15,6 +15,10 @@ OS_FILES = \ OS_Memory \ OS_String \ OS_TLI \ + Thread_Hook \ + Thread_Adapter \ + Thread_Exit \ + Thread_Control \ Sched_Params UTILS_FILES = \ ACE \ @@ -551,12 +555,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -579,12 +584,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -602,10 +608,11 @@ endif # GHS OS.i \ Sched_Params.h \ Sched_Params.i \ - Log_Msg.h \ - Log_Record.h \ - Log_Priority.h \ - Log_Record.i + Thread_Adapter.h \ + Thread_Adapter.inl \ + Thread_Exit.h \ + Thread_Control.h \ + Thread_Control.inl .obj/OS_Dirent.o .obj/OS_Dirent.so .shobj/OS_Dirent.o .shobj/OS_Dirent.so: OS_Dirent.cpp \ OS_Dirent.h \ @@ -613,12 +620,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Export.h \ OS_Dirent.inl \ OS_String.h \ @@ -630,12 +638,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Export.h \ OS_Memory.inl @@ -645,31 +654,353 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Export.h \ OS_String.inl \ OS_Memory.h \ OS_Memory.inl -.obj/OS_TLI.o .obj/OS_TLI.so .shobj/OS_TLI.o .shobj/OS_TLI.so: OS_TLI.cpp OS_TLI.h \ +.obj/OS_TLI.o .obj/OS_TLI.so .shobj/OS_TLI.o .shobj/OS_TLI.so: OS_TLI.cpp \ + OS_TLI.h \ pre.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Export.h \ OS_TLI.inl +.obj/Thread_Hook.o .obj/Thread_Hook.so .shobj/Thread_Hook.o .shobj/Thread_Hook.so: Thread_Hook.cpp \ + Thread_Hook.h \ + pre.h \ + config-all.h \ + config.h \ + config-linux-lxpthreads.h \ + config-linux.h \ + config-linux-common.h \ + config-g++-common.h \ + post.h \ + ACE_export.h \ + svc_export.h \ + ace_wchar.h \ + OS.h \ + OS_Dirent.h \ + OS_Export.h \ + OS_Dirent.inl \ + OS_String.h \ + OS_String.inl \ + OS_Memory.h \ + OS_Memory.inl \ + OS_TLI.h \ + OS_TLI.inl \ + Min_Max.h \ + streams.h \ + Basic_Types.h \ + Basic_Types.i \ + Trace.h \ + OS.i \ + Thread_Manager.h \ + Thread.h \ + ACE.h \ + ACE.i \ + Thread.i \ + Thread_Adapter.h \ + Thread_Adapter.inl \ + Synch.h \ + SV_Semaphore_Complex.h \ + SV_Semaphore_Simple.h \ + SV_Semaphore_Simple.i \ + SV_Semaphore_Complex.i \ + Synch.i \ + Synch_T.h \ + Event_Handler.h \ + Event_Handler.i \ + Synch_T.i \ + Atomic_Op.i \ + Synch_T.cpp \ + Log_Msg.h \ + Log_Record.h \ + Log_Priority.h \ + Log_Record.i \ + Containers.h \ + Malloc_Base.h \ + Containers.i \ + Containers_T.h \ + Containers_T.i \ + Containers_T.cpp \ + Malloc.h \ + Based_Pointer_T.h \ + Based_Pointer_T.i \ + Based_Pointer_T.cpp \ + Based_Pointer_Repository.h \ + Singleton.h \ + Singleton.i \ + Singleton.cpp \ + Object_Manager.h \ + Object_Manager.i \ + Managed_Object.h \ + Managed_Object.i \ + Managed_Object.cpp \ + Malloc.i \ + Malloc_T.h \ + Free_List.h \ + Free_List.i \ + Free_List.cpp \ + Malloc_T.i \ + Malloc_T.cpp \ + Memory_Pool.h \ + Signal.h \ + Signal.i \ + Mem_Map.h \ + Mem_Map.i \ + Memory_Pool.i \ + Thread_Manager.i + +.obj/Thread_Adapter.o .obj/Thread_Adapter.so .shobj/Thread_Adapter.o .shobj/Thread_Adapter.so: Thread_Adapter.cpp \ + Thread_Adapter.h \ + pre.h \ + config-all.h \ + config.h \ + config-linux-lxpthreads.h \ + config-linux.h \ + config-linux-common.h \ + config-g++-common.h \ + post.h \ + ACE_export.h \ + svc_export.h \ + ace_wchar.h \ + OS.h \ + OS_Dirent.h \ + OS_Export.h \ + OS_Dirent.inl \ + OS_String.h \ + OS_String.inl \ + OS_Memory.h \ + OS_Memory.inl \ + OS_TLI.h \ + OS_TLI.inl \ + Min_Max.h \ + streams.h \ + Basic_Types.h \ + Basic_Types.i \ + Trace.h \ + OS.i \ + Thread_Adapter.inl \ + Thread_Manager.h \ + Thread.h \ + ACE.h \ + ACE.i \ + Thread.i \ + Synch.h \ + SV_Semaphore_Complex.h \ + SV_Semaphore_Simple.h \ + SV_Semaphore_Simple.i \ + SV_Semaphore_Complex.i \ + Synch.i \ + Synch_T.h \ + Event_Handler.h \ + Event_Handler.i \ + Synch_T.i \ + Atomic_Op.i \ + Synch_T.cpp \ + Log_Msg.h \ + Log_Record.h \ + Log_Priority.h \ + Log_Record.i \ + Containers.h \ + Malloc_Base.h \ + Containers.i \ + Containers_T.h \ + Containers_T.i \ + Containers_T.cpp \ + Malloc.h \ + Based_Pointer_T.h \ + Based_Pointer_T.i \ + Based_Pointer_T.cpp \ + Based_Pointer_Repository.h \ + Singleton.h \ + Singleton.i \ + Singleton.cpp \ + Object_Manager.h \ + Object_Manager.i \ + Managed_Object.h \ + Managed_Object.i \ + Managed_Object.cpp \ + Malloc.i \ + Malloc_T.h \ + Free_List.h \ + Free_List.i \ + Free_List.cpp \ + Malloc_T.i \ + Malloc_T.cpp \ + Memory_Pool.h \ + Signal.h \ + Signal.i \ + Mem_Map.h \ + Mem_Map.i \ + Memory_Pool.i \ + Thread_Manager.i \ + Thread_Exit.h \ + Thread_Control.h \ + Thread_Control.inl \ + Thread_Hook.h + +.obj/Thread_Exit.o .obj/Thread_Exit.so .shobj/Thread_Exit.o .shobj/Thread_Exit.so: Thread_Exit.cpp \ + Thread_Exit.h \ + pre.h \ + config-all.h \ + config.h \ + config-linux-lxpthreads.h \ + config-linux.h \ + config-linux-common.h \ + config-g++-common.h \ + post.h \ + ACE_export.h \ + svc_export.h \ + ace_wchar.h \ + OS.h \ + OS_Dirent.h \ + OS_Export.h \ + OS_Dirent.inl \ + OS_String.h \ + OS_String.inl \ + OS_Memory.h \ + OS_Memory.inl \ + OS_TLI.h \ + OS_TLI.inl \ + Min_Max.h \ + streams.h \ + Basic_Types.h \ + Basic_Types.i \ + Trace.h \ + OS.i \ + Thread_Control.h \ + Thread_Control.inl \ + Synch.h \ + ACE.h \ + ACE.i \ + SV_Semaphore_Complex.h \ + SV_Semaphore_Simple.h \ + SV_Semaphore_Simple.i \ + SV_Semaphore_Complex.i \ + Synch.i \ + Synch_T.h \ + Event_Handler.h \ + Event_Handler.i \ + Synch_T.i \ + Thread.h \ + Thread.i \ + Atomic_Op.i \ + Synch_T.cpp \ + Log_Msg.h \ + Log_Record.h \ + Log_Priority.h \ + Log_Record.i \ + Managed_Object.h \ + Object_Manager.h \ + Object_Manager.i \ + Managed_Object.i \ + Managed_Object.cpp + +.obj/Thread_Control.o .obj/Thread_Control.so .shobj/Thread_Control.o .shobj/Thread_Control.so: Thread_Control.cpp \ + Thread_Control.h \ + pre.h \ + config-all.h \ + config.h \ + config-linux-lxpthreads.h \ + config-linux.h \ + config-linux-common.h \ + config-g++-common.h \ + post.h \ + ACE_export.h \ + svc_export.h \ + ace_wchar.h \ + OS.h \ + OS_Dirent.h \ + OS_Export.h \ + OS_Dirent.inl \ + OS_String.h \ + OS_String.inl \ + OS_Memory.h \ + OS_Memory.inl \ + OS_TLI.h \ + OS_TLI.inl \ + Min_Max.h \ + streams.h \ + Basic_Types.h \ + Basic_Types.i \ + Trace.h \ + OS.i \ + Thread_Control.inl \ + Thread_Manager.h \ + Thread.h \ + ACE.h \ + ACE.i \ + Thread.i \ + Thread_Adapter.h \ + Thread_Adapter.inl \ + Synch.h \ + SV_Semaphore_Complex.h \ + SV_Semaphore_Simple.h \ + SV_Semaphore_Simple.i \ + SV_Semaphore_Complex.i \ + Synch.i \ + Synch_T.h \ + Event_Handler.h \ + Event_Handler.i \ + Synch_T.i \ + Atomic_Op.i \ + Synch_T.cpp \ + Log_Msg.h \ + Log_Record.h \ + Log_Priority.h \ + Log_Record.i \ + Containers.h \ + Malloc_Base.h \ + Containers.i \ + Containers_T.h \ + Containers_T.i \ + Containers_T.cpp \ + Malloc.h \ + Based_Pointer_T.h \ + Based_Pointer_T.i \ + Based_Pointer_T.cpp \ + Based_Pointer_Repository.h \ + Singleton.h \ + Singleton.i \ + Singleton.cpp \ + Object_Manager.h \ + Object_Manager.i \ + Managed_Object.h \ + Managed_Object.i \ + Managed_Object.cpp \ + Malloc.i \ + Malloc_T.h \ + Free_List.h \ + Free_List.i \ + Free_List.cpp \ + Malloc_T.i \ + Malloc_T.cpp \ + Memory_Pool.h \ + Signal.h \ + Signal.i \ + Mem_Map.h \ + Mem_Map.i \ + Memory_Pool.i \ + Thread_Manager.i + .obj/Sched_Params.o .obj/Sched_Params.so .shobj/Sched_Params.o .shobj/Sched_Params.so: Sched_Params.cpp \ Sched_Params.h \ pre.h \ @@ -677,12 +1008,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -706,12 +1038,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -803,12 +1136,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -909,12 +1243,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -931,19 +1266,21 @@ endif # GHS Trace.h \ OS.i -.obj/ARGV.o .obj/ARGV.so .shobj/ARGV.o .shobj/ARGV.so: ARGV.cpp ARGV.h \ +.obj/ARGV.o .obj/ARGV.so .shobj/ARGV.o .shobj/ARGV.so: ARGV.cpp \ + ARGV.h \ pre.h \ ACE.h \ OS.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1019,12 +1356,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1130,12 +1468,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1212,12 +1551,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1315,18 +1655,20 @@ endif # GHS Hash_Map_With_Allocator_T.i \ Hash_Map_With_Allocator_T.cpp -.obj/Dirent.o .obj/Dirent.so .shobj/Dirent.o .shobj/Dirent.so: Dirent.cpp Dirent.h \ +.obj/Dirent.o .obj/Dirent.so .shobj/Dirent.o .shobj/Dirent.so: Dirent.cpp \ + Dirent.h \ pre.h \ OS_Dirent.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Export.h \ OS_Dirent.inl \ Dirent.i \ @@ -1356,12 +1698,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1415,12 +1758,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1449,12 +1793,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1484,12 +1829,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1592,12 +1938,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1675,12 +2022,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1704,12 +2052,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1836,12 +2185,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1870,12 +2220,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1900,12 +2251,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -1993,19 +2345,21 @@ endif # GHS Auto_Ptr.i \ Auto_Ptr.cpp -.obj/Stats.o .obj/Stats.so .shobj/Stats.o .shobj/Stats.so: Stats.cpp Stats.h \ +.obj/Stats.o .obj/Stats.so .shobj/Stats.o .shobj/Stats.so: Stats.cpp \ + Stats.h \ pre.h \ ACE.h \ OS.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2081,12 +2435,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2163,12 +2518,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2200,12 +2556,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2232,12 +2589,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2324,12 +2682,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2410,12 +2769,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2493,12 +2853,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2580,12 +2941,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2667,12 +3029,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2766,7 +3129,8 @@ endif # GHS Reactor_Impl.h \ Svc_Conf_Tokens.h -.obj/Dump.o .obj/Dump.so .shobj/Dump.o .shobj/Dump.so: Dump.cpp Synch_T.h \ +.obj/Dump.o .obj/Dump.so .shobj/Dump.o .shobj/Dump.so: Dump.cpp \ + Synch_T.h \ pre.h \ Event_Handler.h \ ACE.h \ @@ -2774,12 +3138,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2826,12 +3191,13 @@ endif # GHS pre.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ ACE.h \ OS.h \ OS_Dirent.h \ @@ -2853,6 +3219,8 @@ endif # GHS Thread_Manager.h \ Thread.h \ Thread.i \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Synch.h \ SV_Semaphore_Complex.h \ SV_Semaphore_Simple.h \ @@ -2926,12 +3294,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -2961,12 +3330,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3054,12 +3424,13 @@ endif # GHS pre.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ Trace.h \ OS.h \ OS_Dirent.h \ @@ -3091,12 +3462,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3194,6 +3566,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -3217,17 +3591,19 @@ endif # GHS Method_Request.h \ Activation_Queue.i -.obj/Process.o .obj/Process.so .shobj/Process.o .shobj/Process.so: Process.cpp OS.h \ +.obj/Process.o .obj/Process.so .shobj/Process.o .shobj/Process.so: Process.cpp \ + OS.h \ pre.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3311,12 +3687,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3397,19 +3774,21 @@ endif # GHS Reactor_Impl.h \ Process_Manager.i -.obj/Synch.o .obj/Synch.so .shobj/Synch.o .shobj/Synch.so: Synch.cpp Thread.h \ +.obj/Synch.o .obj/Synch.so .shobj/Synch.o .shobj/Synch.so: Synch.cpp \ + Thread.h \ pre.h \ ACE.h \ OS.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3452,12 +3831,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3476,19 +3856,21 @@ endif # GHS ACE.i \ Synch_Options.i -.obj/Thread.o .obj/Thread.so .shobj/Thread.o .shobj/Thread.so: Thread.cpp Thread.h \ +.obj/Thread.o .obj/Thread.so .shobj/Thread.o .shobj/Thread.so: Thread.cpp \ + Thread.h \ pre.h \ ACE.h \ OS.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3516,12 +3898,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3555,6 +3938,8 @@ endif # GHS Log_Priority.h \ Log_Record.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Containers.h \ Malloc_Base.h \ Containers.i \ @@ -3592,21 +3977,26 @@ endif # GHS Dynamic.i \ Auto_Ptr.h \ Auto_Ptr.i \ - Auto_Ptr.cpp + Auto_Ptr.cpp \ + Thread_Exit.h \ + Thread_Control.h \ + Thread_Control.inl -.obj/Token.o .obj/Token.so .shobj/Token.o .shobj/Token.so: Token.cpp Thread.h \ +.obj/Token.o .obj/Token.so .shobj/Token.o .shobj/Token.so: Token.cpp \ + Thread.h \ pre.h \ ACE.h \ OS.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3651,12 +4041,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3737,6 +4128,8 @@ endif # GHS Reactor.i \ Reactor_Impl.h \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i .obj/FlReactor.o .obj/FlReactor.so .shobj/FlReactor.o .shobj/FlReactor.so: FlReactor.cpp \ @@ -3752,12 +4145,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3850,12 +4244,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3889,12 +4284,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -3992,6 +4388,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -4021,12 +4419,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -4051,12 +4450,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -4153,12 +4553,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -4261,6 +4662,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -4300,12 +4703,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -4404,6 +4808,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -4453,12 +4859,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -4553,12 +4960,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -4668,12 +5076,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -4703,12 +5112,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -4803,12 +5213,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -4925,12 +5336,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5028,6 +5440,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -5060,12 +5474,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5185,12 +5600,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5282,12 +5698,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5310,12 +5727,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5340,12 +5758,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5371,12 +5790,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5464,6 +5884,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -5503,12 +5925,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5531,7 +5954,8 @@ endif # GHS Log_Priority.h \ Log_Record.i -.obj/LSOCK.o .obj/LSOCK.so .shobj/LSOCK.o .shobj/LSOCK.so: LSOCK.cpp LSOCK.h \ +.obj/LSOCK.o .obj/LSOCK.so .shobj/LSOCK.o .shobj/LSOCK.so: LSOCK.cpp \ + LSOCK.h \ pre.h \ SOCK.h \ ACE.h \ @@ -5539,12 +5963,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5587,12 +6012,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5642,12 +6068,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5695,12 +6122,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5751,12 +6179,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5801,12 +6230,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5843,19 +6273,21 @@ endif # GHS LSOCK.i \ LSOCK_Stream.i -.obj/SOCK.o .obj/SOCK.so .shobj/SOCK.o .shobj/SOCK.so: SOCK.cpp SOCK.h \ +.obj/SOCK.o .obj/SOCK.so .shobj/SOCK.o .shobj/SOCK.so: SOCK.cpp \ + SOCK.h \ pre.h \ ACE.h \ OS.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5896,12 +6328,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -5959,12 +6392,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6007,12 +6441,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6055,12 +6490,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6116,12 +6552,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6164,56 +6601,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ - OS_Dirent.h \ - OS_Export.h \ - OS_Dirent.inl \ - OS_String.h \ - OS_String.inl \ - OS_Memory.h \ - OS_Memory.inl \ - OS_TLI.h \ - OS_TLI.inl \ - Min_Max.h \ - streams.h \ - Basic_Types.h \ - Basic_Types.i \ - Trace.h \ - OS.i \ - ACE.i \ - Addr.h \ - Addr.i \ - IPC_SAP.h \ - IPC_SAP.i \ - QoS_Session.h \ - INET_Addr.h \ - INET_Addr.i \ - SOCK.i \ - SOCK_Dgram.i \ - SOCK_Dgram_Mcast.i - -.obj/SOCK_Dgram_Mcast_QoS.o .obj/SOCK_Dgram_Mcast_QoS.so .shobj/SOCK_Dgram_Mcast_QoS.o .shobj/SOCK_Dgram_Mcast_QoS.so: SOCK_Dgram_Mcast_QoS.cpp \ - SOCK_Dgram_Mcast_QoS.h \ - pre.h \ - SOCK_Dgram_Mcast.h \ - SOCK_Dgram.h \ - SOCK.h \ - ACE.h \ - OS.h \ - config-all.h \ - config.h \ - config-linux-lxpthreads.h \ - config-linux-common.h \ - config-g++-common.h \ - post.h \ ace_wchar.h \ - ACE_export.h \ - svc_export.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6239,12 +6633,7 @@ endif # GHS INET_Addr.i \ SOCK.i \ SOCK_Dgram.i \ - SOCK_Dgram_Mcast.i \ - SOCK_Dgram_Mcast_QoS.i \ - Log_Msg.h \ - Log_Record.h \ - Log_Priority.h \ - Log_Record.i + SOCK_Dgram_Mcast.i .obj/SOCK_IO.o .obj/SOCK_IO.so .shobj/SOCK_IO.o .shobj/SOCK_IO.so: SOCK_IO.cpp \ SOCK_IO.h \ @@ -6255,12 +6644,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6299,12 +6689,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6332,18 +6723,20 @@ endif # GHS SOCK_IO.i \ SOCK_Stream.i -.obj/Addr.o .obj/Addr.so .shobj/Addr.o .shobj/Addr.so: Addr.cpp Addr.h \ +.obj/Addr.o .obj/Addr.so .shobj/Addr.o .shobj/Addr.so: Addr.cpp \ + Addr.h \ pre.h \ OS.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6373,12 +6766,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6411,12 +6805,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6450,12 +6845,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6490,12 +6886,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6521,12 +6918,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6553,12 +6951,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6592,12 +6991,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6634,12 +7034,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6674,12 +7075,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6718,12 +7120,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6756,7 +7159,8 @@ endif # GHS Log_Record.i \ DEV_Connector.i -.obj/DEV_IO.o .obj/DEV_IO.so .shobj/DEV_IO.o .shobj/DEV_IO.so: DEV_IO.cpp DEV_IO.h \ +.obj/DEV_IO.o .obj/DEV_IO.so .shobj/DEV_IO.o .shobj/DEV_IO.so: DEV_IO.cpp \ + DEV_IO.h \ pre.h \ DEV.h \ IO_SAP.h \ @@ -6765,12 +7169,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6802,7 +7207,8 @@ endif # GHS Log_Priority.h \ Log_Record.i -.obj/FIFO.o .obj/FIFO.so .shobj/FIFO.o .shobj/FIFO.so: FIFO.cpp FIFO.h \ +.obj/FIFO.o .obj/FIFO.so .shobj/FIFO.o .shobj/FIFO.so: FIFO.cpp \ + FIFO.h \ pre.h \ IPC_SAP.h \ ACE.h \ @@ -6810,12 +7216,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6849,12 +7256,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6890,12 +7298,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6931,12 +7340,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -6972,12 +7382,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7011,12 +7422,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7044,7 +7456,8 @@ endif # GHS Log_Priority.h \ Log_Record.i -.obj/FILE.o .obj/FILE.so .shobj/FILE.o .shobj/FILE.so: FILE.cpp FILE.h \ +.obj/FILE.o .obj/FILE.so .shobj/FILE.o .shobj/FILE.so: FILE.cpp \ + FILE.h \ pre.h \ IO_SAP.h \ ACE.h \ @@ -7052,12 +7465,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7095,12 +7509,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7143,12 +7558,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7188,12 +7604,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7218,19 +7635,21 @@ endif # GHS Log_Priority.h \ Log_Record.i -.obj/IO_SAP.o .obj/IO_SAP.so .shobj/IO_SAP.o .shobj/IO_SAP.so: IO_SAP.cpp IO_SAP.h \ +.obj/IO_SAP.o .obj/IO_SAP.so .shobj/IO_SAP.o .shobj/IO_SAP.so: IO_SAP.cpp \ + IO_SAP.h \ pre.h \ ACE.h \ OS.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7260,12 +7679,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7293,19 +7713,21 @@ endif # GHS IOStream_T.i \ IOStream_T.cpp -.obj/Pipe.o .obj/Pipe.so .shobj/Pipe.o .shobj/Pipe.so: Pipe.cpp Pipe.h \ +.obj/Pipe.o .obj/Pipe.so .shobj/Pipe.o .shobj/Pipe.so: Pipe.cpp \ + Pipe.h \ pre.h \ ACE.h \ OS.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7346,7 +7768,8 @@ endif # GHS Log_Priority.h \ Log_Record.i -.obj/Signal.o .obj/Signal.so .shobj/Signal.o .shobj/Signal.so: Signal.cpp Synch_T.h \ +.obj/Signal.o .obj/Signal.so .shobj/Signal.o .shobj/Signal.so: Signal.cpp \ + Synch_T.h \ pre.h \ Event_Handler.h \ ACE.h \ @@ -7354,12 +7777,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7433,12 +7857,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7462,7 +7887,8 @@ endif # GHS SString.i \ Malloc_Base.h -.obj/SPIPE.o .obj/SPIPE.so .shobj/SPIPE.o .shobj/SPIPE.so: SPIPE.cpp SPIPE.h \ +.obj/SPIPE.o .obj/SPIPE.so .shobj/SPIPE.o .shobj/SPIPE.so: SPIPE.cpp \ + SPIPE.h \ pre.h \ IPC_SAP.h \ ACE.h \ @@ -7470,12 +7896,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7513,12 +7940,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7561,12 +7989,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7609,12 +8038,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7650,12 +8080,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7682,12 +8113,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7721,12 +8153,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7758,12 +8191,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7794,12 +8228,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7830,12 +8265,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7870,12 +8306,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7912,12 +8349,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7959,12 +8397,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -7987,18 +8426,20 @@ endif # GHS INET_Addr.h \ INET_Addr.i -.obj/TTY_IO.o .obj/TTY_IO.so .shobj/TTY_IO.o .shobj/TTY_IO.so: TTY_IO.cpp TTY_IO.h \ - pre.h \ +.obj/TTY_IO.o .obj/TTY_IO.so .shobj/TTY_IO.o .shobj/TTY_IO.so: TTY_IO.cpp \ + TTY_IO.h \ OS.h \ + pre.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -8044,12 +8485,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -8084,12 +8526,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -8192,6 +8635,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -8247,12 +8692,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -8355,6 +8801,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -8408,12 +8856,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -8516,6 +8965,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -8569,12 +9020,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -8676,12 +9128,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -8720,12 +9173,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -8819,7 +9273,8 @@ endif # GHS MEM_Addr.i \ MEM_Connector.i -.obj/MEM_IO.o .obj/MEM_IO.so .shobj/MEM_IO.o .shobj/MEM_IO.so: MEM_IO.cpp MEM_IO.h \ +.obj/MEM_IO.o .obj/MEM_IO.so .shobj/MEM_IO.o .shobj/MEM_IO.so: MEM_IO.cpp \ + MEM_IO.h \ pre.h \ SOCK.h \ ACE.h \ @@ -8827,12 +9282,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -8927,12 +9383,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -9010,12 +9467,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -9106,12 +9564,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -9144,12 +9603,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -9237,6 +9697,8 @@ endif # GHS Service_Repository.i \ Task.h \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Task.i \ Task_T.h \ @@ -9289,12 +9751,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -9412,6 +9875,8 @@ endif # GHS Auto_Ptr.cpp \ Proactor.h \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Process_Manager.h \ Process.h \ @@ -9426,12 +9891,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -9555,6 +10021,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -9581,12 +10049,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -9636,12 +10105,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -9696,12 +10166,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -9742,6 +10213,8 @@ endif # GHS Stream_Modules.h \ Task.h \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Containers.h \ Malloc_Base.h \ Containers.i \ @@ -9841,12 +10314,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -9871,12 +10345,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -9978,12 +10453,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -10093,6 +10569,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -10133,12 +10611,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -10219,12 +10698,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ - svc_export.h + svc_export.h \ + ace_wchar.h .obj/Message_Block.o .obj/Message_Block.so .shobj/Message_Block.o .shobj/Message_Block.so: Message_Block.cpp \ Message_Block.h \ @@ -10234,12 +10714,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -10321,12 +10802,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -10424,6 +10906,8 @@ endif # GHS Synch_Options.h \ Synch_Options.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i \ Hash_Map_Manager.h \ Functor.h \ @@ -10445,7 +10929,8 @@ endif # GHS Strategies.i \ Message_Queue.i -.obj/Task.o .obj/Task.so .shobj/Task.o .shobj/Task.so: Task.cpp Task.h \ +.obj/Task.o .obj/Task.so .shobj/Task.o .shobj/Task.so: Task.cpp \ + Task.h \ pre.h \ Service_Object.h \ Shared_Object.h \ @@ -10454,12 +10939,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -10483,6 +10969,8 @@ endif # GHS Thread_Manager.h \ Thread.h \ Thread.i \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Synch.h \ SV_Semaphore_Complex.h \ SV_Semaphore_Simple.h \ @@ -10594,12 +11082,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -10688,19 +11177,21 @@ endif # GHS Reactor_Impl.h \ Svc_Conf_Tokens.h -.obj/Malloc.o .obj/Malloc.so .shobj/Malloc.o .shobj/Malloc.so: Malloc.cpp Malloc.h \ +.obj/Malloc.o .obj/Malloc.so .shobj/Malloc.o .shobj/Malloc.so: Malloc.cpp \ + Malloc.h \ pre.h \ ACE.h \ OS.h \ config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -10775,12 +11266,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -10811,12 +11303,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -10895,12 +11388,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -10976,12 +11470,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11076,12 +11571,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11108,12 +11604,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11143,12 +11640,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11177,12 +11675,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11285,12 +11784,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11409,12 +11909,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11517,12 +12018,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11623,12 +12125,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11732,12 +12235,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11840,12 +12344,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11930,6 +12435,8 @@ endif # GHS Pipe.h \ Pipe.i \ Thread_Manager.h \ + Thread_Adapter.h \ + Thread_Adapter.inl \ Thread_Manager.i .obj/CORBA_Ref.o .obj/CORBA_Ref.so .shobj/CORBA_Ref.o .shobj/CORBA_Ref.so: CORBA_Ref.cpp \ @@ -11940,12 +12447,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -11975,12 +12483,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -12112,12 +12621,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -12229,12 +12739,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -12268,12 +12779,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -12387,12 +12899,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -12525,12 +13038,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -12555,12 +13069,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -12670,6 +13185,103 @@ endif # GHS Auto_Ptr.i \ Auto_Ptr.cpp +.obj/SOCK_Dgram_Mcast_QoS.o .obj/SOCK_Dgram_Mcast_QoS.so .shobj/SOCK_Dgram_Mcast_QoS.o .shobj/SOCK_Dgram_Mcast_QoS.so: SOCK_Dgram_Mcast_QoS.cpp \ + SOCK_Dgram_Mcast_QoS.h \ + pre.h \ + SOCK_Dgram_Mcast.h \ + SOCK_Dgram.h \ + SOCK.h \ + ACE.h \ + OS.h \ + config-all.h \ + config.h \ + config-linux-lxpthreads.h \ + config-linux.h \ + config-linux-common.h \ + config-g++-common.h \ + post.h \ + ACE_export.h \ + svc_export.h \ + ace_wchar.h \ + OS_Dirent.h \ + OS_Export.h \ + OS_Dirent.inl \ + OS_String.h \ + OS_String.inl \ + OS_Memory.h \ + OS_Memory.inl \ + OS_TLI.h \ + OS_TLI.inl \ + Min_Max.h \ + streams.h \ + Basic_Types.h \ + Basic_Types.i \ + Trace.h \ + OS.i \ + ACE.i \ + Addr.h \ + Addr.i \ + IPC_SAP.h \ + IPC_SAP.i \ + QoS_Session.h \ + INET_Addr.h \ + INET_Addr.i \ + SOCK.i \ + SOCK_Dgram.i \ + SOCK_Dgram_Mcast.i \ + QoS_Manager.h \ + Containers_T.h \ + Containers.h \ + Malloc_Base.h \ + Containers.i \ + Containers_T.i \ + Containers_T.cpp \ + Malloc.h \ + Log_Msg.h \ + Log_Record.h \ + Log_Priority.h \ + Log_Record.i \ + Based_Pointer_T.h \ + Based_Pointer_T.i \ + Based_Pointer_T.cpp \ + Based_Pointer_Repository.h \ + Singleton.h \ + Synch.h \ + SV_Semaphore_Complex.h \ + SV_Semaphore_Simple.h \ + SV_Semaphore_Simple.i \ + SV_Semaphore_Complex.i \ + Synch.i \ + Synch_T.h \ + Event_Handler.h \ + Event_Handler.i \ + Synch_T.i \ + Thread.h \ + Thread.i \ + Atomic_Op.i \ + Synch_T.cpp \ + Singleton.i \ + Singleton.cpp \ + Object_Manager.h \ + Object_Manager.i \ + Managed_Object.h \ + Managed_Object.i \ + Managed_Object.cpp \ + Malloc.i \ + Malloc_T.h \ + Free_List.h \ + Free_List.i \ + Free_List.cpp \ + Malloc_T.i \ + Malloc_T.cpp \ + Memory_Pool.h \ + Signal.h \ + Signal.i \ + Mem_Map.h \ + Mem_Map.i \ + Memory_Pool.i \ + SOCK_Dgram_Mcast_QoS.i + .obj/QoS_Session_Impl.o .obj/QoS_Session_Impl.so .shobj/QoS_Session_Impl.o .shobj/QoS_Session_Impl.so: QoS_Session_Impl.cpp \ SOCK.h \ pre.h \ @@ -12678,12 +13290,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -12772,12 +13385,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -12858,12 +13472,13 @@ endif # GHS config-all.h \ config.h \ config-linux-lxpthreads.h \ + config-linux.h \ config-linux-common.h \ config-g++-common.h \ post.h \ - ace_wchar.h \ ACE_export.h \ svc_export.h \ + ace_wchar.h \ OS_Dirent.h \ OS_Export.h \ OS_Dirent.inl \ @@ -12935,4 +13550,111 @@ endif # GHS Mem_Map.i \ Memory_Pool.i +.obj/QoS_Decorator.o .obj/QoS_Decorator.so .shobj/QoS_Decorator.o .shobj/QoS_Decorator.so: QoS_Decorator.cpp \ + QoS_Decorator.h \ + pre.h \ + Reactor.h \ + Handle_Set.h \ + ACE.h \ + OS.h \ + config-all.h \ + config.h \ + config-linux-lxpthreads.h \ + config-linux.h \ + config-linux-common.h \ + config-g++-common.h \ + post.h \ + ACE_export.h \ + svc_export.h \ + ace_wchar.h \ + OS_Dirent.h \ + OS_Export.h \ + OS_Dirent.inl \ + OS_String.h \ + OS_String.inl \ + OS_Memory.h \ + OS_Memory.inl \ + OS_TLI.h \ + OS_TLI.inl \ + Min_Max.h \ + streams.h \ + Basic_Types.h \ + Basic_Types.i \ + Trace.h \ + OS.i \ + ACE.i \ + Handle_Set.i \ + Timer_Queue.h \ + Synch.h \ + SV_Semaphore_Complex.h \ + SV_Semaphore_Simple.h \ + SV_Semaphore_Simple.i \ + SV_Semaphore_Complex.i \ + Synch.i \ + Synch_T.h \ + Event_Handler.h \ + Event_Handler.i \ + Synch_T.i \ + Thread.h \ + Thread.i \ + Atomic_Op.i \ + Synch_T.cpp \ + Log_Msg.h \ + Log_Record.h \ + Log_Priority.h \ + Log_Record.i \ + Timer_Queue_T.h \ + Free_List.h \ + Free_List.i \ + Free_List.cpp \ + Timer_Queue_T.i \ + Timer_Queue_T.cpp \ + Signal.h \ + Containers.h \ + Malloc_Base.h \ + Containers.i \ + Containers_T.h \ + Containers_T.i \ + Containers_T.cpp \ + Malloc.h \ + Based_Pointer_T.h \ + Based_Pointer_T.i \ + Based_Pointer_T.cpp \ + Based_Pointer_Repository.h \ + Singleton.h \ + Singleton.i \ + Singleton.cpp \ + Object_Manager.h \ + Object_Manager.i \ + Managed_Object.h \ + Managed_Object.i \ + Managed_Object.cpp \ + Malloc.i \ + Malloc_T.h \ + Malloc_T.i \ + Malloc_T.cpp \ + Memory_Pool.h \ + Mem_Map.h \ + Mem_Map.i \ + Memory_Pool.i \ + Signal.i \ + Reactor.i \ + Reactor_Impl.h \ + INET_Addr.h \ + Addr.h \ + Addr.i \ + INET_Addr.i \ + SOCK_Dgram_Mcast_QoS.h \ + SOCK_Dgram_Mcast.h \ + SOCK_Dgram.h \ + SOCK.h \ + IPC_SAP.h \ + IPC_SAP.i \ + QoS_Session.h \ + SOCK.i \ + SOCK_Dgram.i \ + SOCK_Dgram_Mcast.i \ + QoS_Manager.h \ + SOCK_Dgram_Mcast_QoS.i + # IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/ace/Makefile.am b/ace/Makefile.am index 2198d5cd736..7bf1d43c883 100644 --- a/ace/Makefile.am +++ b/ace/Makefile.am @@ -138,6 +138,10 @@ libACE_OS_la_SOURCES = \ OS_Memory.cpp \ OS_String.cpp \ OS_TLI.cpp \ + Thread_Hook \ + Thread_Adapter \ + Thread_Exit \ + Thread_Control \ Sched_Params.cpp libACE_Utils_la_SOURCES = \ diff --git a/ace/Makefile.bor b/ace/Makefile.bor index 22660bb16bc..85363a3e121 100644 --- a/ace/Makefile.bor +++ b/ace/Makefile.bor @@ -97,6 +97,10 @@ OBJFILES = \ $(OBJDIR)\OS_Memory.obj \ $(OBJDIR)\OS_String.obj \ $(OBJDIR)\OS_TLI.obj \ + $(OBJDIR)\Thread_Hook.obj \ + $(OBJDIR)\Thread_Adapter.obj \ + $(OBJDIR)\Thread_Exit.obj \ + $(OBJDIR)\Thread_Control.obj \ $(OBJDIR)\Pair.obj \ $(OBJDIR)\Parse_Node.obj \ $(OBJDIR)\Pipe.obj \ diff --git a/ace/OS.cpp b/ace/OS.cpp index 1935b18752a..332fe0d1025 100644 --- a/ace/OS.cpp +++ b/ace/OS.cpp @@ -2,6 +2,8 @@ #include "ace/OS.h" #include "ace/Sched_Params.h" +#include "ace/Thread_Adapter.h" +#include "ace/Thread_Exit.h" // Perhaps we should *always* include ace/OS.i in order to make sure // we can always link against the OS symbols? @@ -214,12 +216,6 @@ ACE_OS::netdb_release (void) #endif /* ! ACE_MT_SAFE */ ACE_EXIT_HOOK ACE_OS::exit_hook_ = 0; -ACE_INIT_LOG_MSG_HOOK ACE_Thread_Adapter::init_log_msg_hook_ = 0; -ACE_INHERIT_LOG_MSG_HOOK ACE_Thread_Adapter::inherit_log_msg_hook_ = 0; -ACE_CLOSE_LOG_MSG_HOOK ACE_Thread_Adapter::close_log_msg_hook_ = 0; -ACE_SYNC_LOG_MSG_HOOK ACE_Thread_Adapter::sync_log_msg_hook_ = 0; - -u_int ACE_Thread_Exit::is_constructed_ = 0; // Static constant representing `zero-time'. // Note: this object requires static construction. @@ -2342,32 +2338,6 @@ ACE_OS::cleanup_tss (const u_int main_thread) } } -void -ACE_Thread_Adapter::inherit_log_msg (void) -{ - if (ACE_Thread_Adapter::inherit_log_msg_hook_ != 0) - (*ACE_Thread_Adapter::inherit_log_msg_hook_)(this->thr_desc_, - this->log_msg_attributes_); -} - -void -ACE_Thread_Adapter::close_log_msg (void) -{ - if (ACE_Thread_Adapter::close_log_msg_hook_ != 0) - { - (*ACE_Thread_Adapter::close_log_msg_hook_) (); - } -} - -void -ACE_Thread_Adapter::sync_log_msg (const ACE_TCHAR *prg) -{ - if (ACE_Thread_Adapter::sync_log_msg_hook_ != 0) - { - (*ACE_Thread_Adapter::sync_log_msg_hook_) (prg); - } -} - #if !defined(ACE_WIN32) && defined (__IBMCPP__) && (__IBMCPP__ >= 400) #define ACE_ENDTHREADEX(STATUS) ::_endthread () #define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \ @@ -2423,220 +2393,6 @@ HANDLE WINAPI __IBMCPP__beginthreadex(void *stack, ::_beginthreadex (STACK, STACKSIZE, (unsigned (__stdcall *) (void *)) ENTRY_POINT, ARGS, FLAGS, (unsigned int *) THR_ID) #endif /* defined (__IBMCPP__) && (__IBMCPP__ >= 400) */ -void * -ACE_Thread_Hook::start (ACE_THR_FUNC func, - void *arg) -{ - return (func) (arg); -} - -ACE_Thread_Hook * -ACE_Thread_Hook::thread_hook (ACE_Thread_Hook *hook) -{ - return ACE_OS_Object_Manager::thread_hook (hook); -} - -ACE_Thread_Hook * -ACE_Thread_Hook::thread_hook (void) -{ - return ACE_OS_Object_Manager::thread_hook (); -} - -void * -ACE_Thread_Adapter::invoke (void) -{ - // Inherit the logging features if the parent thread has an - // ACE_Log_Msg instance in thread-specific storage. - this->inherit_log_msg (); - -#if !defined(ACE_USE_THREAD_MANAGER_ADAPTER) - // NOTE: this preprocessor directive should match the one in - // above ACE_Thread_Exit::instance (). With the Xavier Pthreads - // package, the exit_hook in TSS causes a seg fault. So, this - // works around that by creating exit_hook on the stack. -# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION) - // Obtain our thread-specific exit hook and make sure that it - // knows how to clean us up! Note that we never use this - // pointer directly (it's stored in thread-specific storage), so - // it's ok to dereference it here and only store it as a - // reference. - if (this->thr_mgr () != 0) - { - ACE_Thread_Exit &exit_hook = *ACE_Thread_Exit::instance (); - // Keep track of the <Thread_Manager> that's associated with this - // <exit_hook>. - exit_hook.thr_mgr (this->thr_mgr ()); - } -# else - // Without TSS, create an <ACE_Thread_Exit> instance. When this - // function returns, its destructor will be called because the - // object goes out of scope. The drawback with this appraoch is - // that the destructor _won't_ get called if <thr_exit> is - // called. So, threads shouldn't exit that way. Instead, they - // should return from <svc>. - ACE_Thread_Exit exit_hook; - exit_hook.thr_mgr (this->thr_mgr ()); -# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */ - -#endif /* ! ACE_USE_THREAD_MANAGER_ADAPTER */ - - // Extract the arguments. - ACE_THR_FUNC_INTERNAL func = ACE_reinterpret_cast (ACE_THR_FUNC_INTERNAL, - this->user_func_); - void *arg = this->arg_; - -#if defined (ACE_WIN32) && defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0) - ACE_OS_Thread_Descriptor *thr_desc = this->thr_desc_; -#endif /* ACE_WIN32 && ACE_HAS_MFC && (ACE_HAS_MFC != 0) */ - - // Delete ourselves since we don't need <this> anymore. Make sure - // not to access <this> anywhere below this point. - delete this; - -#if defined (ACE_NEEDS_LWP_PRIO_SET) - // On SunOS, the LWP priority needs to be set in order to get - // preemption when running in the RT class. This is the ACE way to - // do that . . . - ACE_hthread_t thr_handle; - ACE_OS::thr_self (thr_handle); - int prio; - - // thr_getprio () on the current thread should never fail. - ACE_OS::thr_getprio (thr_handle, prio); - - // ACE_OS::thr_setprio () has the special logic to set the LWP priority, - // if running in the RT class. - ACE_OS::thr_setprio (prio); - -#endif /* ACE_NEEDS_LWP_PRIO_SET */ - - void *status = 0; - - ACE_SEH_TRY - { - ACE_SEH_TRY - { - ACE_Thread_Hook *hook = - ACE_OS_Object_Manager::thread_hook (); - - if (hook) - // Invoke the start hook to give the user a chance to - // perform some initialization processing before the - // <func> is invoked. - status = hook->start (ACE_reinterpret_cast (ACE_THR_FUNC, func), - arg); - else - { - // Call thread entry point. -#if defined (ACE_PSOS) - (*func) (arg); -#else /* ! ACE_PSOS */ - status = ACE_reinterpret_cast (void *, (*func) (arg)); -#endif /* ACE_PSOS */ - } -#if defined (ACE_PSOS) - // pSOS task functions do not return a value. - status = 0; -#endif /* ACE_PSOS */ - } - -#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) - ACE_SEH_EXCEPT (ACE_OS_Object_Manager::seh_except_selector ()( - (void *) GetExceptionInformation ())) - { - ACE_OS_Object_Manager::seh_except_handler ()(0); - } -#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */ - } - - ACE_SEH_FINALLY - { - // If we changed this to 1, change the respective if in - // Task::svc_run to 0. -#if 0 - // Call the <Task->close> hook. - if (func == ACE_reinterpret_cast (ACE_THR_FUNC_INTERNAL, - ACE_Task_Base::svc_run)) - { - ACE_Task_Base *task_ptr = (ACE_Task_Base *) arg; - ACE_Thread_Manager *thr_mgr_ptr = task_ptr->thr_mgr (); - - // This calls the Task->close () hook. - task_ptr->cleanup (task_ptr, 0); - - // This prevents a second invocation of the cleanup code - // (called later by <ACE_Thread_Manager::exit>. - thr_mgr_ptr->at_exit (task_ptr, 0, 0); - } -#endif /* 0 */ - -#if defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION) -# if defined (ACE_WIN32) && defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0) - int using_afx = -1; - if (thr_desc) - using_afx = ACE_BIT_ENABLED (thr_desc->flags (), THR_USE_AFX); -# endif /* ACE_WIN32 && ACE_HAS_MFC && (ACE_HAS_MFC != 0) */ - // Call TSS destructors. - ACE_OS::cleanup_tss (0 /* not main thread */); - -# if defined (ACE_WIN32) - // Exit the thread. Allow CWinThread-destructor to be invoked - // from AfxEndThread. _endthreadex will be called from - // AfxEndThread so don't exit the thread now if we are running - // an MFC thread. -# if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0) - if (using_afx != -1) - { - if (using_afx) - ::AfxEndThread ((DWORD) status); - else - ACE_ENDTHREADEX (status); - } - else - { - // Not spawned by ACE_Thread_Manager, use the old buggy - // version. You should seriously consider using - // ACE_Thread_Manager to spawn threads. The following code - // is know to cause some problem. - CWinThread *pThread = ::AfxGetThread (); - - if (!pThread || pThread->m_nThreadID != ACE_OS::thr_self ()) - ACE_ENDTHREADEX (status); - else - ::AfxEndThread ((DWORD)status); - } -# else - - ACE_ENDTHREADEX (status); -# endif /* ACE_HAS_MFC && ACE_HAS_MFS != 0*/ -# endif /* ACE_WIN32 */ -#endif /* ACE_WIN32 || ACE_HAS_TSS_EMULATION */ - -#if defined (ACE_PSOS) - // This sequence of calls is documented by ISI as the proper way to - // clean up a pSOS task. They affect different components, so only - // try the ones for components that are built with ACE. -# if defined (SC_PREPC) && (SC_PREPC == YES) - ::fclose (0); // Return pREPC+ resources -# endif /* SC_PREPC */ -# if defined (SC_PHILE) && (SC_PHILE == YES) - ::close_f (0); // Return pHILE+ resources -# endif /* SC_PHILE */ -# if defined (SC_PNA) && (SC_PNA == YES) - ::close (0); // Return pNA+ resources -# endif /* SC_PNA */ -# if defined (SC_SC_PREPC) && (SC_PREPC == YES) - ::free (-1); // Return pREPC+ memory -# endif /* SC_PREPC */ - status = ::t_delete (0); // Suicide - only returns on error -#endif /* ACE_PSOS */ - - return status; - } - - ACE_NOTREACHED (return status); -} - #if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) int ACE_SEH_Default_Exception_Selector (void *) { @@ -7048,6 +6804,8 @@ ACE_OS_Object_Manager::fini (void) # endif /* ACE_MT_SAFE */ #endif /* ! ACE_HAS_STATIC_PREALLOCATION */ + // @@ Shouldn't this be done in the ACE_Thread_Exit cleanup + // function? ACE_Thread_Exit::is_constructed_ = 0; // All TSS objects have been destroyed. Reset this flag so // ACE_Thread_Exit singleton can be created again. @@ -4451,272 +4451,8 @@ private: // ACE_Cleanup_Info). }; -// Run the thread entry point for the <ACE_Thread_Adapter>. This must -// be an extern "C" to make certain compilers happy... -#if defined (ACE_PSOS) -extern "C" void ace_thread_adapter (unsigned long args); -#else /* ! defined (ACE_PSOS) */ -extern "C" ACE_Export void *ace_thread_adapter (void *args); -#endif /* ACE_PSOS */ - -class ACE_OS_Thread_Descriptor -{ - // = TITLE - // Parent class of all ACE_Thread_Descriptor classes. - // - // = - // Container for ACE_Thread_Descriptor members that are - // used in ACE_OS. -public: - long flags (void) const; - // Get the thread creation flags. - -protected: - ACE_OS_Thread_Descriptor (long flags = 0); - // For use by ACE_Thread_Descriptor. - - long flags_; - // Keeps track of whether this thread was created "detached" or not. - // If a thread is *not* created detached then if someone calls - // <ACE_Thread_Manager::wait>, we need to join with that thread (and - // close down the handle). -}; - -// Forward decl. -class ACE_Thread_Manager; -class ACE_Thread_Descriptor; - -class ACE_Export ACE_Thread_Adapter -{ - // = TITLE - // Converts a C++ function into a function <ace_thread_adapter> - // function that can be called from a thread creation routine - // (e.g., <pthread_create> or <_beginthreadex>) that expects an - // extern "C" entry point. This class also makes it possible to - // transparently provide hooks to register a thread with an - // <ACE_Thread_Manager>. - // - // = DESCRIPTION - // This class is used in <ACE_OS::thr_create>. In general, the - // thread that creates an object of this class is different from - // the thread that calls <invoke> on this object. Therefore, - // the <invoke> method is responsible for deleting itself. -public: - ACE_Thread_Adapter (ACE_THR_FUNC user_func, - void *arg, - ACE_THR_C_FUNC entry_point = (ACE_THR_C_FUNC) ace_thread_adapter, - ACE_Thread_Manager *thr_mgr = 0, - ACE_Thread_Descriptor *td = 0 -# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) - , ACE_SEH_EXCEPT_HANDLER selector = 0, - ACE_SEH_EXCEPT_HANDLER handler = 0 -# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */ - ); - // Constructor. - - void *invoke (void); - // Execute the <user_func_> with the <arg>. This function deletes - // <this>, thereby rendering the object useless after the call - // returns. - - ACE_Thread_Manager *thr_mgr (void); - // Accessor for the optional <Thread_Manager>. - - ACE_THR_C_FUNC entry_point (void); - // Accessor for the C entry point function to the OS thread creation - // routine. - - static void close_log_msg (void); - // Invoke the close_log_msg_hook, if it is present - - static void sync_log_msg (const ACE_TCHAR *prog_name); - // Invoke the sync_log_msg_hook, if it is present - -private: - ~ACE_Thread_Adapter (void); - // Ensure that this object must be allocated on the heap. - - void inherit_log_msg (void); - // Inherit the logging features if the parent thread has an - // <ACE_Log_Msg>. - - static ACE_INIT_LOG_MSG_HOOK init_log_msg_hook_; - static ACE_INHERIT_LOG_MSG_HOOK inherit_log_msg_hook_; - static ACE_CLOSE_LOG_MSG_HOOK close_log_msg_hook_; - static ACE_SYNC_LOG_MSG_HOOK sync_log_msg_hook_; - // The hooks to inherit and cleanup the Log_Msg attributes - - static void set_log_msg_hooks (ACE_INIT_LOG_MSG_HOOK init_hook, - ACE_INHERIT_LOG_MSG_HOOK inherit_hook, - ACE_CLOSE_LOG_MSG_HOOK close_hook, - ACE_SYNC_LOG_MSG_HOOK sync_hook); - // Set the Log_Msg hooks - - friend class ACE_Log_Msg; - // Allow the ACE_Log_Msg class to set its hooks. - -private: - ACE_THR_FUNC user_func_; - // Thread startup function passed in by the user (C++ linkage). - - void *arg_; - // Argument to thread startup function. - - ACE_THR_C_FUNC entry_point_; - // Entry point to the underlying OS thread creation call (C - // linkage). - - ACE_Thread_Manager *thr_mgr_; - // Optional thread manager. - - ACE_OS_Thread_Descriptor *thr_desc_; - // Optional thread descriptor. Passing this pointer in will force - // the spawned thread to cache this location in <Log_Msg> and wait - // until <Thread_Manager> fills in all information in thread - // descriptor. - - void *log_msg_attributes_; - // The ACE_Log_Msg attributes. - - friend class ACE_Thread_Adapter_Has_Private_Destructor; - // Friend declaration to avoid compiler warning: only defines a private - // destructor and has no friends. -}; - -class ACE_Export ACE_Thread_Hook -{ - // = TITLE - // This class makes it possible to provide user-defined "start" - // hooks that are called before the thread entry point function - // is invoked. - -public: - virtual void *start (ACE_THR_FUNC func, - void *arg); - // This method can be overridden in a subclass to customize this - // pre-function call "hook" invocation that can perform - // initialization processing before the thread entry point <func> - // method is called back. The <func> and <arg> passed into the - // start hook are the same as those passed by the application that - // spawned the thread. - - static ACE_Thread_Hook *thread_hook (ACE_Thread_Hook *hook); - // sets the system wide thread hook, returns the previous thread - // hook or 0 if none is set. - - static ACE_Thread_Hook *thread_hook (void); - // Returns the current system thread hook. -}; - -class ACE_Export ACE_Thread_Control -{ - // = TITLE - // Used to keep track of a thread's activities within its entry - // point function. - // - // = DESCRIPTION - // A <ACE_Thread_Manager> uses this class to ensure that threads - // it spawns automatically register and unregister themselves - // with it. - // - // This class can be stored in thread-specific storage using the - // <ACE_TSS> wrapper. When a thread exits the - // <ACE_TSS::cleanup> function deletes this object, thereby - // ensuring that it gets removed from its associated - // <ACE_Thread_Manager>. -public: - ACE_Thread_Control (ACE_Thread_Manager *tm = 0, - int insert = 0); - // Initialize the thread control object. If <insert> != 0, then - // register the thread with the Thread_Manager. - - ~ACE_Thread_Control (void); - // Remove the thread from its associated <Thread_Manager> and exit - // the thread if <do_thr_exit> is enabled. - - void *exit (void *status, - int do_thr_exit); - // Remove this thread from its associated <Thread_Manager> and exit - // the thread if <do_thr_exit> is enabled. - - int insert (ACE_Thread_Manager *tm, int insert = 0); - // Store the <Thread_Manager> and use it to register ourselves for - // correct shutdown. - - ACE_Thread_Manager *thr_mgr (void); - // Returns the current <Thread_Manager>. - - ACE_Thread_Manager *thr_mgr (ACE_Thread_Manager *); - // Atomically set a new <Thread_Manager> and return the old - // <Thread_Manager>. - - void *status (void *status); - // Set the exit status (and return existing status). - - void *status (void); - // Get the current exit status. - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -private: - ACE_Thread_Manager *tm_; - // Pointer to the thread manager for this block of code. - - void *status_; - // Keeps track of the exit status for the thread. -}; - -class ACE_Export ACE_Thread_Exit -{ - // = TITLE - // Keep exit information for a Thread in thread specific storage. - // so that the thread-specific exit hooks will get called no - // matter how the thread exits (e.g., via <ACE_Thread::exit>, C++ - // or Win32 exception, "falling off the end" of the thread entry - // point function, etc.). - // - // = DESCRIPTION - // This clever little helper class is stored in thread-specific - // storage using the <ACE_TSS> wrapper. When a thread exits the - // <ACE_TSS::cleanup> function deletes this object, thereby - // closing it down gracefully. -public: - ACE_Thread_Exit (void); - // Capture the Thread that will be cleaned up automatically. - - void thr_mgr (ACE_Thread_Manager *tm); - // Set the <ACE_Thread_Manager>. - - ~ACE_Thread_Exit (void); - // Destructor calls the thread-specific exit hooks when a thread - // exits. - - static ACE_Thread_Exit *instance (void); - // Singleton access point. - - static void cleanup (void *instance, void *); - // Cleanup method, used by the <ACE_Object_Manager> to destroy the - // singleton. - -private: - friend class ACE_OS_Object_Manager; - // Allow OS_Object_Manager to reset the status of <is_constructed_>. - - ACE_Thread_Control thread_control_; - // Automatically add/remove the thread from the - // <ACE_Thread_Manager>. - - static u_int is_constructed_; - // Used to detect whether we should create a new instance (or not) - // within the instance method -- we don't trust the instance_ ptr - // because the destructor may have run (if ACE::fini() was called). - // See bug #526. - // We don't follow the singleton pattern due to dependency issues. -}; +class ACE_Thread_Adapter; +class ACE_Thread_Hook; # if defined (ACE_HAS_PHARLAP_RT) #define ACE_IPPROTO_TCP SOL_SOCKET @@ -7544,6 +7280,10 @@ typedef ACE_TRANSMIT_FILE_BUFFERS* ACE_LPTRANSMIT_FILE_BUFFERS; #if !defined (ACE_ONLY_LATEST_AND_GREATEST) # include "ace/Log_Msg.h" +# include "ace/Thread_Hook.h" +# include "ace/Thread_Adapter.h" +# include "ace/Thread_Exit.h" +# include "ace/Thread_Control.h" #endif /* ACE_ONLY_LATEST_AND_GREATEST */ #include "ace/post.h" @@ -11326,51 +11326,8 @@ ACE_OS::pthread_sigmask (int how, const sigset_t *nsp, sigset_t *osp) #endif /* ACE_HAS_PACE */ } -ACE_INLINE long -ACE_OS_Thread_Descriptor::flags (void) const -{ - ACE_OS_TRACE ("ACE_OS_Thread_Descriptor::flags"); - return flags_; -} - - -ACE_INLINE -ACE_OS_Thread_Descriptor::ACE_OS_Thread_Descriptor (long flags) - : flags_ (flags) -{ -} - // **************************************************************** -ACE_INLINE void -ACE_Thread_Adapter::set_log_msg_hooks (ACE_INIT_LOG_MSG_HOOK init_hook, - ACE_INHERIT_LOG_MSG_HOOK inherit_hook, - ACE_CLOSE_LOG_MSG_HOOK close_hook, - ACE_SYNC_LOG_MSG_HOOK sync_hook) -{ - ACE_Thread_Adapter::init_log_msg_hook_ = init_hook; - ACE_Thread_Adapter::inherit_log_msg_hook_ = inherit_hook; - ACE_Thread_Adapter::close_log_msg_hook_ = close_hook; - ACE_Thread_Adapter::sync_log_msg_hook_ = sync_hook; -} - -ACE_INLINE ACE_Thread_Manager * -ACE_Thread_Adapter::thr_mgr (void) -{ - return this->thr_mgr_; -} - -ACE_INLINE -ACE_Thread_Adapter::~ACE_Thread_Adapter (void) -{ -} - -ACE_INLINE ACE_THR_C_FUNC -ACE_Thread_Adapter::entry_point (void) -{ - return this->entry_point_; -} - #if defined (ACE_PSOS) ACE_INLINE int isatty (int h) diff --git a/ace/OS_String.cpp b/ace/OS_String.cpp index 82b8d4b767f..c77165ed4a6 100644 --- a/ace/OS_String.cpp +++ b/ace/OS_String.cpp @@ -10,7 +10,7 @@ ACE_RCSID(ace, OS_String, "$Id$") #endif /* ACE_HAS_INLINED_OS_CALLS */ #if defined (ACE_LACKS_WCSDUP_PROTOTYPE) -extern "C" wchar_t *wcsdup __P ((__const wchar_t *__s)); +extern "C" wchar_t *wcsdup __P ((__const wchar_t *__s)); #endif /* ACE_LACKS_WCSDUP_PROTOTYPE */ const char * @@ -248,7 +248,7 @@ ACE_OS_String::strcasecmp_emulation (const char *s, const char *t) const char *scan2 = t; while (*scan1 != 0 - && ACE_OS_String::to_lower (*scan1) + && ACE_OS_String::to_lower (*scan1) == ACE_OS_String::to_lower (*scan2)) { ++scan1; @@ -277,7 +277,7 @@ ACE_OS_String::strcasecmp_emulation (const wchar_t *s, const wchar_t *t) const wchar_t *scan2 = t; while (*scan1 != 0 - && ACE_OS_String::to_lower (*scan1) + && ACE_OS_String::to_lower (*scan1) == ACE_OS_String::to_lower (*scan2)) { ++scan1; @@ -300,8 +300,8 @@ ACE_OS_String::strcasecmp_emulation (const wchar_t *s, const wchar_t *t) #endif /* ACE_HAS_WCHAR */ int -ACE_OS_String::strncasecmp_emulation (const char *s, - const char *t, +ACE_OS_String::strncasecmp_emulation (const char *s, + const char *t, size_t len) { const char *scan1 = s; @@ -310,7 +310,7 @@ ACE_OS_String::strncasecmp_emulation (const char *s, while (count++ < len && *scan1 != 0 - && ACE_OS_String::to_lower (*scan1) + && ACE_OS_String::to_lower (*scan1) == ACE_OS_String::to_lower (*scan2)) { ++scan1; @@ -336,8 +336,8 @@ ACE_OS_String::strncasecmp_emulation (const char *s, #if defined (ACE_HAS_WCHAR) int -ACE_OS_String::strncasecmp_emulation (const wchar_t *s, - const wchar_t *t, +ACE_OS_String::strncasecmp_emulation (const wchar_t *s, + const wchar_t *t, size_t len) { const wchar_t *scan1 = s; @@ -346,7 +346,7 @@ ACE_OS_String::strncasecmp_emulation (const wchar_t *s, while (count++ > len && *scan1 != 0 - && ACE_OS_String::to_lower (*scan1) + && ACE_OS_String::to_lower (*scan1) == ACE_OS_String::to_lower (*scan2)) { ++scan1; @@ -420,7 +420,7 @@ ACE_OS_String::itoa_emulation (int value, char *string, int radix) } // If negative and base 10, print a - and then do the - // number. + // number. if (value < 0 && radix == 10) { @@ -441,13 +441,13 @@ ACE_OS_String::itoa_emulation (int value, char *string, int radix) *e-- = 0; // Now reverse the string to get the correct result - + while (e > b) { char temp = *e; *e = *b; *b = temp; - ++b; + ++b; --e; } @@ -471,7 +471,7 @@ ACE_OS_String::itoa_emulation (int value, wchar_t *string, int radix) } // If negative and base 10, print a - and then do the - // number. + // number. if (value < 0 && radix == 10) { @@ -492,13 +492,13 @@ ACE_OS_String::itoa_emulation (int value, wchar_t *string, int radix) *e-- = 0; // Now reverse the string to get the correct result - + while (e > b) { wchar_t temp = *e; *e = *b; *b = temp; - ++b; + ++b; --e; } diff --git a/ace/Thread_Adapter.cpp b/ace/Thread_Adapter.cpp new file mode 100644 index 00000000000..361909a8545 --- /dev/null +++ b/ace/Thread_Adapter.cpp @@ -0,0 +1,239 @@ +// $Id$ + +#include "ace/Thread_Adapter.h" +#include "ace/Thread_Manager.h" +#include "ace/Thread_Exit.h" +#include "ace/Thread_Hook.h" + +ACE_RCSID(ace, Thread_Adapter, "$Id$") + +#if !defined (ACE_HAS_INLINED_OSCALLS) +# include "ace/Thread_Adapter.inl" +#endif /* ACE_HAS_INLINED_OS_CALLS */ + +ACE_INIT_LOG_MSG_HOOK ACE_Thread_Adapter::init_log_msg_hook_ = 0; +ACE_INHERIT_LOG_MSG_HOOK ACE_Thread_Adapter::inherit_log_msg_hook_ = 0; +ACE_CLOSE_LOG_MSG_HOOK ACE_Thread_Adapter::close_log_msg_hook_ = 0; +ACE_SYNC_LOG_MSG_HOOK ACE_Thread_Adapter::sync_log_msg_hook_ = 0; + +void +ACE_Thread_Adapter::inherit_log_msg (void) +{ + if (ACE_Thread_Adapter::inherit_log_msg_hook_ != 0) + (*ACE_Thread_Adapter::inherit_log_msg_hook_)(this->thr_desc_, + this->log_msg_attributes_); +} + +void +ACE_Thread_Adapter::close_log_msg (void) +{ + if (ACE_Thread_Adapter::close_log_msg_hook_ != 0) + { + (*ACE_Thread_Adapter::close_log_msg_hook_) (); + } +} + +void +ACE_Thread_Adapter::sync_log_msg (const ACE_TCHAR *prg) +{ + if (ACE_Thread_Adapter::sync_log_msg_hook_ != 0) + { + (*ACE_Thread_Adapter::sync_log_msg_hook_) (prg); + } +} + + +void * +ACE_Thread_Adapter::invoke (void) +{ + // Inherit the logging features if the parent thread has an + // ACE_Log_Msg instance in thread-specific storage. + this->inherit_log_msg (); + +#if !defined(ACE_USE_THREAD_MANAGER_ADAPTER) + // NOTE: this preprocessor directive should match the one in + // above ACE_Thread_Exit::instance (). With the Xavier Pthreads + // package, the exit_hook in TSS causes a seg fault. So, this + // works around that by creating exit_hook on the stack. +# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION) + // Obtain our thread-specific exit hook and make sure that it + // knows how to clean us up! Note that we never use this + // pointer directly (it's stored in thread-specific storage), so + // it's ok to dereference it here and only store it as a + // reference. + if (this->thr_mgr () != 0) + { + ACE_Thread_Exit &exit_hook = *ACE_Thread_Exit::instance (); + // Keep track of the <Thread_Manager> that's associated with this + // <exit_hook>. + exit_hook.thr_mgr (this->thr_mgr ()); + } +# else + // Without TSS, create an <ACE_Thread_Exit> instance. When this + // function returns, its destructor will be called because the + // object goes out of scope. The drawback with this appraoch is + // that the destructor _won't_ get called if <thr_exit> is + // called. So, threads shouldn't exit that way. Instead, they + // should return from <svc>. + ACE_Thread_Exit exit_hook; + exit_hook.thr_mgr (this->thr_mgr ()); +# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */ + +#endif /* ! ACE_USE_THREAD_MANAGER_ADAPTER */ + + // Extract the arguments. + ACE_THR_FUNC_INTERNAL func = ACE_reinterpret_cast (ACE_THR_FUNC_INTERNAL, + this->user_func_); + void *arg = this->arg_; + +#if defined (ACE_WIN32) && defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0) + ACE_OS_Thread_Descriptor *thr_desc = this->thr_desc_; +#endif /* ACE_WIN32 && ACE_HAS_MFC && (ACE_HAS_MFC != 0) */ + + // Delete ourselves since we don't need <this> anymore. Make sure + // not to access <this> anywhere below this point. + delete this; + +#if defined (ACE_NEEDS_LWP_PRIO_SET) + // On SunOS, the LWP priority needs to be set in order to get + // preemption when running in the RT class. This is the ACE way to + // do that . . . + ACE_hthread_t thr_handle; + ACE_OS::thr_self (thr_handle); + int prio; + + // thr_getprio () on the current thread should never fail. + ACE_OS::thr_getprio (thr_handle, prio); + + // ACE_OS::thr_setprio () has the special logic to set the LWP priority, + // if running in the RT class. + ACE_OS::thr_setprio (prio); + +#endif /* ACE_NEEDS_LWP_PRIO_SET */ + + void *status = 0; + + ACE_SEH_TRY + { + ACE_SEH_TRY + { + ACE_Thread_Hook *hook = + ACE_OS_Object_Manager::thread_hook (); + + if (hook) + // Invoke the start hook to give the user a chance to + // perform some initialization processing before the + // <func> is invoked. + status = hook->start (ACE_reinterpret_cast (ACE_THR_FUNC, func), + arg); + else + { + // Call thread entry point. +#if defined (ACE_PSOS) + (*func) (arg); +#else /* ! ACE_PSOS */ + status = ACE_reinterpret_cast (void *, (*func) (arg)); +#endif /* ACE_PSOS */ + } +#if defined (ACE_PSOS) + // pSOS task functions do not return a value. + status = 0; +#endif /* ACE_PSOS */ + } + +#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) + ACE_SEH_EXCEPT (ACE_OS_Object_Manager::seh_except_selector ()( + (void *) GetExceptionInformation ())) + { + ACE_OS_Object_Manager::seh_except_handler ()(0); + } +#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */ + } + + ACE_SEH_FINALLY + { + // If we changed this to 1, change the respective if in + // Task::svc_run to 0. +#if 0 + // Call the <Task->close> hook. + if (func == ACE_reinterpret_cast (ACE_THR_FUNC_INTERNAL, + ACE_Task_Base::svc_run)) + { + ACE_Task_Base *task_ptr = (ACE_Task_Base *) arg; + ACE_Thread_Manager *thr_mgr_ptr = task_ptr->thr_mgr (); + + // This calls the Task->close () hook. + task_ptr->cleanup (task_ptr, 0); + + // This prevents a second invocation of the cleanup code + // (called later by <ACE_Thread_Manager::exit>. + thr_mgr_ptr->at_exit (task_ptr, 0, 0); + } +#endif /* 0 */ + +#if defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION) +# if defined (ACE_WIN32) && defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0) + int using_afx = -1; + if (thr_desc) + using_afx = ACE_BIT_ENABLED (thr_desc->flags (), THR_USE_AFX); +# endif /* ACE_WIN32 && ACE_HAS_MFC && (ACE_HAS_MFC != 0) */ + // Call TSS destructors. + ACE_OS::cleanup_tss (0 /* not main thread */); + +# if defined (ACE_WIN32) + // Exit the thread. Allow CWinThread-destructor to be invoked + // from AfxEndThread. _endthreadex will be called from + // AfxEndThread so don't exit the thread now if we are running + // an MFC thread. +# if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0) + if (using_afx != -1) + { + if (using_afx) + ::AfxEndThread ((DWORD) status); + else + ACE_ENDTHREADEX (status); + } + else + { + // Not spawned by ACE_Thread_Manager, use the old buggy + // version. You should seriously consider using + // ACE_Thread_Manager to spawn threads. The following code + // is know to cause some problem. + CWinThread *pThread = ::AfxGetThread (); + + if (!pThread || pThread->m_nThreadID != ACE_OS::thr_self ()) + ACE_ENDTHREADEX (status); + else + ::AfxEndThread ((DWORD)status); + } +# else + + ACE_ENDTHREADEX (status); +# endif /* ACE_HAS_MFC && ACE_HAS_MFS != 0*/ +# endif /* ACE_WIN32 */ +#endif /* ACE_WIN32 || ACE_HAS_TSS_EMULATION */ + +#if defined (ACE_PSOS) + // This sequence of calls is documented by ISI as the proper way to + // clean up a pSOS task. They affect different components, so only + // try the ones for components that are built with ACE. +# if defined (SC_PREPC) && (SC_PREPC == YES) + ::fclose (0); // Return pREPC+ resources +# endif /* SC_PREPC */ +# if defined (SC_PHILE) && (SC_PHILE == YES) + ::close_f (0); // Return pHILE+ resources +# endif /* SC_PHILE */ +# if defined (SC_PNA) && (SC_PNA == YES) + ::close (0); // Return pNA+ resources +# endif /* SC_PNA */ +# if defined (SC_SC_PREPC) && (SC_PREPC == YES) + ::free (-1); // Return pREPC+ memory +# endif /* SC_PREPC */ + status = ::t_delete (0); // Suicide - only returns on error +#endif /* ACE_PSOS */ + + return status; + } + + ACE_NOTREACHED (return status); +} diff --git a/ace/Thread_Adapter.h b/ace/Thread_Adapter.h new file mode 100644 index 00000000000..9da861cb5d3 --- /dev/null +++ b/ace/Thread_Adapter.h @@ -0,0 +1,169 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// ace +// +// = FILENAME +// Thread_Adapter.h +// +// = AUTHOR +// Carlos O'Ryan <coryan@uci.edu> +// +// ============================================================================ + +#ifndef ACE_THREAD_ADAPTER_H +#define ACE_THREAD_ADAPTER_H +#include "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/OS.h" + +// Run the thread entry point for the <ACE_Thread_Adapter>. This must +// be an extern "C" to make certain compilers happy... +#if defined (ACE_PSOS) +extern "C" void ace_thread_adapter (unsigned long args); +#else /* ! defined (ACE_PSOS) */ +extern "C" ACE_Export void *ace_thread_adapter (void *args); +#endif /* ACE_PSOS */ + +class ACE_OS_Thread_Descriptor +{ + // = TITLE + // Parent class of all ACE_Thread_Descriptor classes. + // + // = + // Container for ACE_Thread_Descriptor members that are + // used in ACE_OS. +public: + long flags (void) const; + // Get the thread creation flags. + +protected: + ACE_OS_Thread_Descriptor (long flags = 0); + // For use by ACE_Thread_Descriptor. + + long flags_; + // Keeps track of whether this thread was created "detached" or not. + // If a thread is *not* created detached then if someone calls + // <ACE_Thread_Manager::wait>, we need to join with that thread (and + // close down the handle). +}; + +// Forward decl. +class ACE_Thread_Manager; +class ACE_Thread_Descriptor; + +class ACE_Export ACE_Thread_Adapter +{ + // = TITLE + // Converts a C++ function into a function <ace_thread_adapter> + // function that can be called from a thread creation routine + // (e.g., <pthread_create> or <_beginthreadex>) that expects an + // extern "C" entry point. This class also makes it possible to + // transparently provide hooks to register a thread with an + // <ACE_Thread_Manager>. + // + // = DESCRIPTION + // This class is used in <ACE_OS::thr_create>. In general, the + // thread that creates an object of this class is different from + // the thread that calls <invoke> on this object. Therefore, + // the <invoke> method is responsible for deleting itself. +public: + ACE_Thread_Adapter (ACE_THR_FUNC user_func, + void *arg, + ACE_THR_C_FUNC entry_point = (ACE_THR_C_FUNC) ace_thread_adapter, + ACE_Thread_Manager *thr_mgr = 0, + ACE_Thread_Descriptor *td = 0 +# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) + , ACE_SEH_EXCEPT_HANDLER selector = 0, + ACE_SEH_EXCEPT_HANDLER handler = 0 +# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */ + ); + // Constructor. + + void *invoke (void); + // Execute the <user_func_> with the <arg>. This function deletes + // <this>, thereby rendering the object useless after the call + // returns. + + ACE_Thread_Manager *thr_mgr (void); + // Accessor for the optional <Thread_Manager>. + + ACE_THR_C_FUNC entry_point (void); + // Accessor for the C entry point function to the OS thread creation + // routine. + + static void close_log_msg (void); + // Invoke the close_log_msg_hook, if it is present + + static void sync_log_msg (const ACE_TCHAR *prog_name); + // Invoke the sync_log_msg_hook, if it is present + +private: + ~ACE_Thread_Adapter (void); + // Ensure that this object must be allocated on the heap. + + void inherit_log_msg (void); + // Inherit the logging features if the parent thread has an + // <ACE_Log_Msg>. + + static ACE_INIT_LOG_MSG_HOOK init_log_msg_hook_; + static ACE_INHERIT_LOG_MSG_HOOK inherit_log_msg_hook_; + static ACE_CLOSE_LOG_MSG_HOOK close_log_msg_hook_; + static ACE_SYNC_LOG_MSG_HOOK sync_log_msg_hook_; + // The hooks to inherit and cleanup the Log_Msg attributes + + static void set_log_msg_hooks (ACE_INIT_LOG_MSG_HOOK init_hook, + ACE_INHERIT_LOG_MSG_HOOK inherit_hook, + ACE_CLOSE_LOG_MSG_HOOK close_hook, + ACE_SYNC_LOG_MSG_HOOK sync_hook); + // Set the Log_Msg hooks + + friend class ACE_Log_Msg; + // Allow the ACE_Log_Msg class to set its hooks. + +private: + ACE_THR_FUNC user_func_; + // Thread startup function passed in by the user (C++ linkage). + + void *arg_; + // Argument to thread startup function. + + ACE_THR_C_FUNC entry_point_; + // Entry point to the underlying OS thread creation call (C + // linkage). + + ACE_Thread_Manager *thr_mgr_; + // Optional thread manager. + + ACE_OS_Thread_Descriptor *thr_desc_; + // Optional thread descriptor. Passing this pointer in will force + // the spawned thread to cache this location in <Log_Msg> and wait + // until <Thread_Manager> fills in all information in thread + // descriptor. + + void *log_msg_attributes_; + // The ACE_Log_Msg attributes. + + friend class ACE_Thread_Adapter_Has_Private_Destructor; + // Friend declaration to avoid compiler warning: only defines a private + // destructor and has no friends. +}; + +# if defined (ACE_HAS_INLINED_OSCALLS) +# if defined (ACE_INLINE) +# undef ACE_INLINE +# endif /* ACE_INLINE */ +# define ACE_INLINE inline +# include "ace/Thread_Adapter.inl" +# endif /* ACE_HAS_INLINED_OSCALLS */ + +#include "ace/post.h" +#endif /* ACE_THREAD_ADAPTER_H */ diff --git a/ace/Thread_Adapter.inl b/ace/Thread_Adapter.inl new file mode 100644 index 00000000000..715e267a1d2 --- /dev/null +++ b/ace/Thread_Adapter.inl @@ -0,0 +1,44 @@ +// $Id$ + +ACE_INLINE long +ACE_OS_Thread_Descriptor::flags (void) const +{ + ACE_OS_TRACE ("ACE_OS_Thread_Descriptor::flags"); + return flags_; +} + + +ACE_INLINE +ACE_OS_Thread_Descriptor::ACE_OS_Thread_Descriptor (long flags) + : flags_ (flags) +{ +} + +ACE_INLINE void +ACE_Thread_Adapter::set_log_msg_hooks (ACE_INIT_LOG_MSG_HOOK init_hook, + ACE_INHERIT_LOG_MSG_HOOK inherit_hook, + ACE_CLOSE_LOG_MSG_HOOK close_hook, + ACE_SYNC_LOG_MSG_HOOK sync_hook) +{ + ACE_Thread_Adapter::init_log_msg_hook_ = init_hook; + ACE_Thread_Adapter::inherit_log_msg_hook_ = inherit_hook; + ACE_Thread_Adapter::close_log_msg_hook_ = close_hook; + ACE_Thread_Adapter::sync_log_msg_hook_ = sync_hook; +} + +ACE_INLINE ACE_Thread_Manager * +ACE_Thread_Adapter::thr_mgr (void) +{ + return this->thr_mgr_; +} + +ACE_INLINE +ACE_Thread_Adapter::~ACE_Thread_Adapter (void) +{ +} + +ACE_INLINE ACE_THR_C_FUNC +ACE_Thread_Adapter::entry_point (void) +{ + return this->entry_point_; +} diff --git a/ace/Thread_Control.cpp b/ace/Thread_Control.cpp new file mode 100644 index 00000000000..13a4c063795 --- /dev/null +++ b/ace/Thread_Control.cpp @@ -0,0 +1,81 @@ +// $Id$ + +#include "ace/Thread_Control.h" +#include "ace/Thread_Manager.h" + +ACE_RCSID(ace, Thread_Control, "$Id$") + +#if !defined (ACE_HAS_INLINED_OSCALLS) +# include "ace/Thread_Control.inl" +#endif /* ACE_HAS_INLINED_OS_CALLS */ + +void +ACE_Thread_Control::dump (void) const +{ + ACE_OS_TRACE ("ACE_Thread_Control::dump"); +} + +int +ACE_Thread_Control::insert (ACE_Thread_Manager *tm, int insert) +{ + ACE_OS_TRACE ("ACE_Thread_Control::insert"); + + ACE_hthread_t t_id; + ACE_OS::thr_self (t_id); + this->tm_ = tm; + + if (insert) + return this->tm_->insert_thr (ACE_OS::thr_self (), t_id); + else + return 0; +} + +// Initialize the thread controller. + +ACE_Thread_Control::ACE_Thread_Control (ACE_Thread_Manager *t, + int insert) + : tm_ (t), + status_ (0) +{ + ACE_OS_TRACE ("ACE_Thread_Control::ACE_Thread_Control"); + + if (this->tm_ != 0 && insert) + { + ACE_hthread_t t_id; + ACE_OS::thr_self (t_id); + this->tm_->insert_thr (ACE_OS::thr_self (), t_id); + } +} + +// Automatically kill thread on exit. + +ACE_Thread_Control::~ACE_Thread_Control (void) +{ + ACE_OS_TRACE ("ACE_Thread_Control::~ACE_Thread_Control"); + +#if defined (ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS) || defined (ACE_HAS_TSS_EMULATION) || defined (ACE_WIN32) + this->exit (this->status_, 0); +#else + this->exit (this->status_, 1); +#endif /* ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS */ +} + +// Exit from thread (but clean up first). + +void * +ACE_Thread_Control::exit (void *exit_status, int do_thr_exit) +{ + ACE_OS_TRACE ("ACE_Thread_Control::exit"); + + if (this->tm_ != 0) + return this->tm_->exit (exit_status, do_thr_exit); + else + { +#if !defined (ACE_HAS_TSS_EMULATION) + // With ACE_HAS_TSS_EMULATION, we let ACE_Thread_Adapter::invoke () + // exit the thread after cleaning up TSS. + ACE_OS::thr_exit (exit_status); +#endif /* ! ACE_HAS_TSS_EMULATION */ + return 0; + } +} diff --git a/ace/Thread_Control.h b/ace/Thread_Control.h new file mode 100644 index 00000000000..4fcce7cd770 --- /dev/null +++ b/ace/Thread_Control.h @@ -0,0 +1,101 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// ace +// +// = FILENAME +// Thread_Control.h +// +// = AUTHOR +// Carlos O'Ryan <coryan@uci.edu> +// +// ============================================================================ + +#ifndef ACE_THREAD_CONTROL_H +#define ACE_THREAD_CONTROL_H +#include "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/OS.h" + +class ACE_Thread_Manager; + +class ACE_Export ACE_Thread_Control +{ + // = TITLE + // Used to keep track of a thread's activities within its entry + // point function. + // + // = DESCRIPTION + // A <ACE_Thread_Manager> uses this class to ensure that threads + // it spawns automatically register and unregister themselves + // with it. + // + // This class can be stored in thread-specific storage using the + // <ACE_TSS> wrapper. When a thread exits the + // <ACE_TSS::cleanup> function deletes this object, thereby + // ensuring that it gets removed from its associated + // <ACE_Thread_Manager>. +public: + ACE_Thread_Control (ACE_Thread_Manager *tm = 0, + int insert = 0); + // Initialize the thread control object. If <insert> != 0, then + // register the thread with the Thread_Manager. + + ~ACE_Thread_Control (void); + // Remove the thread from its associated <Thread_Manager> and exit + // the thread if <do_thr_exit> is enabled. + + void *exit (void *status, + int do_thr_exit); + // Remove this thread from its associated <Thread_Manager> and exit + // the thread if <do_thr_exit> is enabled. + + int insert (ACE_Thread_Manager *tm, int insert = 0); + // Store the <Thread_Manager> and use it to register ourselves for + // correct shutdown. + + ACE_Thread_Manager *thr_mgr (void); + // Returns the current <Thread_Manager>. + + ACE_Thread_Manager *thr_mgr (ACE_Thread_Manager *); + // Atomically set a new <Thread_Manager> and return the old + // <Thread_Manager>. + + void *status (void *status); + // Set the exit status (and return existing status). + + void *status (void); + // Get the current exit status. + + void dump (void) const; + // Dump the state of an object. + + ACE_ALLOC_HOOK_DECLARE; + // Declare the dynamic allocation hooks. + +private: + ACE_Thread_Manager *tm_; + // Pointer to the thread manager for this block of code. + + void *status_; + // Keeps track of the exit status for the thread. +}; + +# if defined (ACE_HAS_INLINED_OSCALLS) +# if defined (ACE_INLINE) +# undef ACE_INLINE +# endif /* ACE_INLINE */ +# define ACE_INLINE inline +# include "ace/Thread_Control.inl" +# endif /* ACE_HAS_INLINED_OSCALLS */ + +#include "ace/post.h" +#endif /* ACE_THREAD_CONTROL_H */ diff --git a/ace/Thread_Control.inl b/ace/Thread_Control.inl new file mode 100644 index 00000000000..29cb24b1df3 --- /dev/null +++ b/ace/Thread_Control.inl @@ -0,0 +1,42 @@ +// -*- C++ -*- +// $Id$ + +// Set the exit status. + +ACE_INLINE void * +ACE_Thread_Control::status (void *s) +{ + ACE_OS_TRACE ("ACE_Thread_Control::status"); + return this->status_ = s; +} + +// Get the exit status. + +ACE_INLINE void * +ACE_Thread_Control::status (void) +{ + ACE_OS_TRACE ("ACE_Thread_Control::status"); + return this->status_; +} + +// Returns the current <Thread_Manager>. + +ACE_INLINE ACE_Thread_Manager * +ACE_Thread_Control::thr_mgr (void) +{ + ACE_OS_TRACE ("ACE_Thread_Control::thr_mgr"); + return this->tm_; +} + +// Atomically set a new <Thread_Manager> and return the old +// <Thread_Manager>. + +ACE_INLINE ACE_Thread_Manager * +ACE_Thread_Control::thr_mgr (ACE_Thread_Manager *tm) +{ + ACE_OS_TRACE ("ACE_Thread_Control::thr_mgr"); + ACE_Thread_Manager *o_tm = this->tm_; + this->tm_ = tm; + return o_tm; +} + diff --git a/ace/Thread_Exit.cpp b/ace/Thread_Exit.cpp new file mode 100644 index 00000000000..bd6efdd6282 --- /dev/null +++ b/ace/Thread_Exit.cpp @@ -0,0 +1,104 @@ +// $Id$ + +#include "ace/Thread_Exit.h" +#include "ace/OS.h" +#include "ace/Synch.h" +#include "ace/Managed_Object.h" + +ACE_RCSID(ace, Thread_Exit, "$Id$") + +u_int ACE_Thread_Exit::is_constructed_ = 0; + +#if defined (ACE_HAS_SIG_C_FUNC) +extern "C" void +ACE_Thread_Exit_cleanup (void *instance, void *) +{ + ACE_OS_TRACE ("ACE_Thread_Exit_cleanup"); + + delete (ACE_TSS_TYPE (ACE_Thread_Exit) *) instance; +} +#else +void +ACE_Thread_Exit::cleanup (void *instance, void *) +{ + ACE_OS_TRACE ("ACE_Thread_Exit::cleanup"); + + delete (ACE_TSS_TYPE (ACE_Thread_Exit) *) instance; +} +#endif /* ACE_HAS_SIG_C_FUNC */ + +// NOTE: this preprocessor directive should match the one in +// ACE_Task_Base::svc_run () below. This prevents the two statics +// from being defined. + +ACE_Thread_Exit * +ACE_Thread_Exit::instance (void) +{ +#if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION) + ACE_OS_TRACE ("ACE_Thread_Exit::instance"); + + // Determines if we were dynamically allocated. + static ACE_TSS_TYPE (ACE_Thread_Exit) *instance_; + + // Implement the Double Check pattern. + + if (ACE_Thread_Exit::is_constructed_ == 0) + { + ACE_MT (ACE_Thread_Mutex *lock = + ACE_Managed_Object<ACE_Thread_Mutex>::get_preallocated_object + (ACE_Object_Manager::ACE_THREAD_EXIT_LOCK); + ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, *lock, 0)); + + if (ACE_Thread_Exit::is_constructed_ == 0) + { + ACE_NEW_RETURN (instance_, + ACE_TSS_TYPE (ACE_Thread_Exit), + 0); + + ACE_Thread_Exit::is_constructed_ = 1; + + // Register for destruction with ACE_Object_Manager. +#if defined ACE_HAS_SIG_C_FUNC + ACE_Object_Manager::at_exit (instance_, + ACE_Thread_Exit_cleanup, + 0); +#else + ACE_Object_Manager::at_exit (instance_, + ACE_Thread_Exit::cleanup, + 0); +#endif /* ACE_HAS_SIG_C_FUNC */ + } + } + + return ACE_TSS_GET (instance_, ACE_Thread_Exit); +#else + return 0; +#endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */ +} + +// Grab hold of the Task * so that we can close() it in the +// destructor. + +ACE_Thread_Exit::ACE_Thread_Exit (void) +{ + ACE_OS_TRACE ("ACE_Thread_Exit::ACE_Thread_Exit"); +} + +// Set the this pointer... + +void +ACE_Thread_Exit::thr_mgr (ACE_Thread_Manager *tm) +{ + ACE_OS_TRACE ("ACE_Thread_Exit::thr_mgr"); + + if (tm != 0) + this->thread_control_.insert (tm, 0); +} + +// When this object is destroyed the Task is automatically closed +// down! + +ACE_Thread_Exit::~ACE_Thread_Exit (void) +{ + ACE_OS_TRACE ("ACE_Thread_Exit::~ACE_Thread_Exit"); +} diff --git a/ace/Thread_Exit.h b/ace/Thread_Exit.h new file mode 100644 index 00000000000..1df6538dc9e --- /dev/null +++ b/ace/Thread_Exit.h @@ -0,0 +1,78 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// ace +// +// = FILENAME +// Thread_Exit.h +// +// = AUTHOR +// Carlos O'Ryan <coryan@uci.edu> +// +// ============================================================================ + +#ifndef ACE_THREAD_EXIT_H +#define ACE_THREAD_EXIT_H +#include "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/OS.h" +#include "ace/Thread_Control.h" + +class ACE_Export ACE_Thread_Exit +{ + // = TITLE + // Keep exit information for a Thread in thread specific storage. + // so that the thread-specific exit hooks will get called no + // matter how the thread exits (e.g., via <ACE_Thread::exit>, C++ + // or Win32 exception, "falling off the end" of the thread entry + // point function, etc.). + // + // = DESCRIPTION + // This clever little helper class is stored in thread-specific + // storage using the <ACE_TSS> wrapper. When a thread exits the + // <ACE_TSS::cleanup> function deletes this object, thereby + // closing it down gracefully. +public: + ACE_Thread_Exit (void); + // Capture the Thread that will be cleaned up automatically. + + void thr_mgr (ACE_Thread_Manager *tm); + // Set the <ACE_Thread_Manager>. + + ~ACE_Thread_Exit (void); + // Destructor calls the thread-specific exit hooks when a thread + // exits. + + static ACE_Thread_Exit *instance (void); + // Singleton access point. + + static void cleanup (void *instance, void *); + // Cleanup method, used by the <ACE_Object_Manager> to destroy the + // singleton. + +private: + friend class ACE_OS_Object_Manager; + // Allow OS_Object_Manager to reset the status of <is_constructed_>. + + ACE_Thread_Control thread_control_; + // Automatically add/remove the thread from the + // <ACE_Thread_Manager>. + + static u_int is_constructed_; + // Used to detect whether we should create a new instance (or not) + // within the instance method -- we don't trust the instance_ ptr + // because the destructor may have run (if ACE::fini() was called). + // See bug #526. + // We don't follow the singleton pattern due to dependency issues. +}; + +#include "ace/post.h" +#endif /* ACE_THREAD_EXIT_H */ diff --git a/ace/Thread_Hook.cpp b/ace/Thread_Hook.cpp new file mode 100644 index 00000000000..37fc54a4a66 --- /dev/null +++ b/ace/Thread_Hook.cpp @@ -0,0 +1,25 @@ +// $Id$ + +#include "ace/Thread_Hook.h" +#include "ace/Thread_Manager.h" + +ACE_RCSID(ace, Thread_Hook, "$Id$") + +void * +ACE_Thread_Hook::start (ACE_THR_FUNC func, + void *arg) +{ + return (func) (arg); +} + +ACE_Thread_Hook * +ACE_Thread_Hook::thread_hook (ACE_Thread_Hook *hook) +{ + return ACE_OS_Object_Manager::thread_hook (hook); +} + +ACE_Thread_Hook * +ACE_Thread_Hook::thread_hook (void) +{ + return ACE_OS_Object_Manager::thread_hook (); +} diff --git a/ace/Thread_Hook.h b/ace/Thread_Hook.h new file mode 100644 index 00000000000..a1312e1ec8d --- /dev/null +++ b/ace/Thread_Hook.h @@ -0,0 +1,54 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// ace +// +// = FILENAME +// Thread_Hook.h +// +// = AUTHOR +// Carlos O'Ryan <coryan@uci.edu> +// +// ============================================================================ + +#ifndef ACE_THREAD_HOOK_H +#define ACE_THREAD_HOOK_H +#include "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/OS.h" + +class ACE_Export ACE_Thread_Hook +{ + // = TITLE + // This class makes it possible to provide user-defined "start" + // hooks that are called before the thread entry point function + // is invoked. + +public: + virtual void *start (ACE_THR_FUNC func, + void *arg); + // This method can be overridden in a subclass to customize this + // pre-function call "hook" invocation that can perform + // initialization processing before the thread entry point <func> + // method is called back. The <func> and <arg> passed into the + // start hook are the same as those passed by the application that + // spawned the thread. + + static ACE_Thread_Hook *thread_hook (ACE_Thread_Hook *hook); + // sets the system wide thread hook, returns the previous thread + // hook or 0 if none is set. + + static ACE_Thread_Hook *thread_hook (void); + // Returns the current system thread hook. +}; + +#include "ace/post.h" +#endif /* ACE_THREAD_HOOK_H */ diff --git a/ace/Thread_Manager.cpp b/ace/Thread_Manager.cpp index dacae3cb8db..a212b247237 100644 --- a/ace/Thread_Manager.cpp +++ b/ace/Thread_Manager.cpp @@ -6,6 +6,7 @@ #include "ace/Object_Manager.h" #include "ace/Singleton.h" #include "ace/Auto_Ptr.h" +#include "ace/Thread_Exit.h" #if !defined (__ACE_INLINE__) #include "ace/Thread_Manager.i" @@ -408,99 +409,6 @@ ACE_Thread_Manager::~ACE_Thread_Manager (void) this->close (); } -#if defined (ACE_HAS_SIG_C_FUNC) -extern "C" void -ACE_Thread_Exit_cleanup (void *instance, void *) -{ - ACE_TRACE ("ACE_Thread_Exit_cleanup"); - - delete (ACE_TSS_TYPE (ACE_Thread_Exit) *) instance; -} -#else -void -ACE_Thread_Exit::cleanup (void *instance, void *) -{ - ACE_TRACE ("ACE_Thread_Exit::cleanup"); - - delete (ACE_TSS_TYPE (ACE_Thread_Exit) *) instance; -} -#endif /* ACE_HAS_SIG_C_FUNC */ - -// NOTE: this preprocessor directive should match the one in -// ACE_Task_Base::svc_run () below. This prevents the two statics -// from being defined. - -ACE_Thread_Exit * -ACE_Thread_Exit::instance (void) -{ -#if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION) - ACE_TRACE ("ACE_Thread_Exit::instance"); - - // Determines if we were dynamically allocated. - static ACE_TSS_TYPE (ACE_Thread_Exit) *instance_; - - // Implement the Double Check pattern. - - if (ACE_Thread_Exit::is_constructed_ == 0) - { - ACE_MT (ACE_Thread_Mutex *lock = - ACE_Managed_Object<ACE_Thread_Mutex>::get_preallocated_object - (ACE_Object_Manager::ACE_THREAD_EXIT_LOCK); - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, *lock, 0)); - - if (ACE_Thread_Exit::is_constructed_ == 0) - { - ACE_NEW_RETURN (instance_, - ACE_TSS_TYPE (ACE_Thread_Exit), - 0); - - ACE_Thread_Exit::is_constructed_ = 1; - - // Register for destruction with ACE_Object_Manager. -#if defined ACE_HAS_SIG_C_FUNC - ACE_Object_Manager::at_exit (instance_, - ACE_Thread_Exit_cleanup, - 0); -#else - ACE_Object_Manager::at_exit (instance_, - ACE_Thread_Exit::cleanup, - 0); -#endif /* ACE_HAS_SIG_C_FUNC */ - } - } - - return ACE_TSS_GET (instance_, ACE_Thread_Exit); -#else - return 0; -#endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */ -} - -// Grab hold of the Task * so that we can close() it in the -// destructor. - -ACE_Thread_Exit::ACE_Thread_Exit (void) -{ - ACE_TRACE ("ACE_Thread_Exit::ACE_Thread_Exit"); -} - -// Set the this pointer... - -void -ACE_Thread_Exit::thr_mgr (ACE_Thread_Manager *tm) -{ - ACE_TRACE ("ACE_Thread_Exit::thr_mgr"); - - if (tm != 0) - this->thread_control_.insert (tm, 0); -} - -// When this object is destroyed the Task is automatically closed -// down! - -ACE_Thread_Exit::~ACE_Thread_Exit (void) -{ - ACE_TRACE ("ACE_Thread_Exit::~ACE_Thread_Exit"); -} // Run the entry point for thread spawned under the control of the // <ACE_Thread_Manager>. This must be an extern "C" to make certain @@ -2298,77 +2206,6 @@ ACE_Thread_Manager::get_grp (ACE_Task_Base *task, int &grp_id) return 0; } -void -ACE_Thread_Control::dump (void) const -{ - ACE_TRACE ("ACE_Thread_Control::dump"); -} - -int -ACE_Thread_Control::insert (ACE_Thread_Manager *tm, int insert) -{ - ACE_TRACE ("ACE_Thread_Control::insert"); - - ACE_hthread_t t_id; - ACE_Thread::self (t_id); - this->tm_ = tm; - - if (insert) - return this->tm_->insert_thr (ACE_Thread::self (), t_id); - else - return 0; -} - -// Initialize the thread controller. - -ACE_Thread_Control::ACE_Thread_Control (ACE_Thread_Manager *t, - int insert) - : tm_ (t), - status_ (0) -{ - ACE_TRACE ("ACE_Thread_Control::ACE_Thread_Control"); - - if (this->tm_ != 0 && insert) - { - ACE_hthread_t t_id; - ACE_Thread::self (t_id); - this->tm_->insert_thr (ACE_Thread::self (), t_id); - } -} - -// Automatically kill thread on exit. - -ACE_Thread_Control::~ACE_Thread_Control (void) -{ - ACE_TRACE ("ACE_Thread_Control::~ACE_Thread_Control"); - -#if defined (ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS) || defined (ACE_HAS_TSS_EMULATION) || defined (ACE_WIN32) - this->exit (this->status_, 0); -#else - this->exit (this->status_, 1); -#endif /* ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS */ -} - -// Exit from thread (but clean up first). - -void * -ACE_Thread_Control::exit (void *exit_status, int do_thr_exit) -{ - ACE_TRACE ("ACE_Thread_Control::exit"); - - if (this->tm_ != 0) - return this->tm_->exit (exit_status, do_thr_exit); - else - { -#if !defined (ACE_HAS_TSS_EMULATION) - // With ACE_HAS_TSS_EMULATION, we let ACE_Thread_Adapter::invoke () - // exit the thread after cleaning up TSS. - ACE_Thread::exit (exit_status); -#endif /* ! ACE_HAS_TSS_EMULATION */ - return 0; - } -} - #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) # if defined (ACE_THREAD_MANAGER_LACKS_STATICS) template class ACE_Singleton<ACE_Thread_Manager, ACE_SYNCH_MUTEX>; diff --git a/ace/Thread_Manager.h b/ace/Thread_Manager.h index 1ff256197f4..d725f41bac7 100644 --- a/ace/Thread_Manager.h +++ b/ace/Thread_Manager.h @@ -19,6 +19,7 @@ #include "ace/pre.h" #include "ace/Thread.h" +#include "ace/Thread_Adapter.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once diff --git a/ace/Thread_Manager.i b/ace/Thread_Manager.i index c1017f816bc..604f99aba40 100644 --- a/ace/Thread_Manager.i +++ b/ace/Thread_Manager.i @@ -220,45 +220,6 @@ ACE_Thread_Descriptor::reset (ACE_Thread_Manager *tm) #endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */ } -// Set the exit status. - -ACE_INLINE void * -ACE_Thread_Control::status (void *s) -{ - ACE_TRACE ("ACE_Thread_Control::status"); - return this->status_ = s; -} - -// Get the exit status. - -ACE_INLINE void * -ACE_Thread_Control::status (void) -{ - ACE_TRACE ("ACE_Thread_Control::status"); - return this->status_; -} - -// Returns the current <Thread_Manager>. - -ACE_INLINE ACE_Thread_Manager * -ACE_Thread_Control::thr_mgr (void) -{ - ACE_TRACE ("ACE_Thread_Control::thr_mgr"); - return this->tm_; -} - -// Atomically set a new <Thread_Manager> and return the old -// <Thread_Manager>. - -ACE_INLINE ACE_Thread_Manager * -ACE_Thread_Control::thr_mgr (ACE_Thread_Manager *tm) -{ - ACE_TRACE ("ACE_Thread_Control::thr_mgr"); - ACE_Thread_Manager *o_tm = this->tm_; - this->tm_ = tm; - return o_tm; -} - ACE_INLINE ACE_Thread_Descriptor * ACE_Thread_Manager::thread_desc_self (void) { diff --git a/ace/ace.icc b/ace/ace.icc index cbcc4f325b8..8fd443ac052 100755 --- a/ace/ace.icc +++ b/ace/ace.icc @@ -80,6 +80,10 @@ option source type (cpp) "OS_Memory.cpp" source type (cpp) "OS_String.cpp" source type (cpp) "OS_TLI.cpp" + source type (cpp) "Thread_Hook.cpp" + source type (cpp) "Thread_Adapter.cpp" + source type (cpp) "Thread_Exit.cpp" + source type (cpp) "Thread_Control.cpp" source type (cpp) "Parse_Node.cpp" source type (cpp) "Pipe.cpp" source type (cpp) "Proactor.cpp" |