FARGOS/VISTA Object Management Environment Core  ..
FARGOS/VISTA Object Management Environment Core Table of Contents
OMEmutex.h
Go to the documentation of this file.
1 #ifndef _OME_MUTEX_H
2 #define _OME_MUTEX_H "$Id: OMEmutex.h 466 2020-07-24 23:00:54Z fargos $"
4 
14 # ifdef _WIN32
15 // WINDOWS
16 # include <winsock2.h>
17 # define DONT_USE_PTHREADS
18 # define OME_MUTEX_TYPE CRITICAL_SECTION
19 # define OME_CONDITION_TYPE HANDLE
20 // END WINDOWS
21 # else
22 # ifndef DONT_USE_PTHREADS
23 // Using POSIX Threads...
24 # include <unistd.h>
25 # include <pthread.h>
26 # define OME_MUTEX_TYPE pthread_mutex_t
27 # define OME_CONDITION_TYPE pthread_cond_t
28 # else
29 # define OME_MUTEX_TYPE uint32_t
30 # define OME_CONDITION_TYPE uint32_t
31 // END POSIX THREADS
32 # endif
33 # endif /* if Windows or POSIX Threads */
34 
35 # include <OMEmanifests.h>
36 
37 // Labels for Critical Sections within core. Make sure
38 // OME_CRITICAL_SECTION_TOTAL is updated to hold total count.
49 
51 };
52 
54 
56 
58 
60 
62 
64 
66 
68 
70 
72 
73 typedef void *(*OMEnativeTaskFP)(void *);
74 
75 OME_DLL_EXPORT uint64_t OMEcallWithNativeThread(OMEnativeTaskFP func, void *functionArg);
76 
77 OME_DLL_EXPORT int OMEwaitForNativeThread(uint64_t pid, void **retValue);
78 
79 #define OME_MAX_CPUS_PERMITTED 128
80 
84 #endif
85 /* vim: set expandtab shiftwidth=4 tabstop=4: */
_OME_MUTEX_H
#define _OME_MUTEX_H
Definition: tmp.o.cpp:969
OME_CRITICAL_SECTION_TOTAL
@ OME_CRITICAL_SECTION_TOTAL
count of critical sections...
Definition: OMEmutex.h:50
OMElicense.cpp
OME_CRITICAL_SECTION_EVENT_TABLE
@ OME_CRITICAL_SECTION_EVENT_TABLE
Definition: OMEmutex.h:43
OME_CRITICAL_SECTION_OID_REFERENCE
@ OME_CRITICAL_SECTION_OID_REFERENCE
Definition: OMEmutex.h:42
OMEinitStandardCriticalSectionMutexes
bool OMEinitStandardCriticalSectionMutexes()
Definition: OMEmutex.cpp:114
stdout
#define stdout
Definition: tmp.o.cpp:3117
OMEstartCriticalSection
void OMEstartCriticalSection(eOMEcriticalSectionLabel regionID)
Definition: OMEmutex.cpp:217
OMEsetConditionVariable
int OMEsetConditionVariable(OME_CONDITION_TYPE *var)
Definition: OMEmutex.cpp:204
OMEstring
Implements text and binary string storage.
Definition: OMEstring.h:305
OME_CONDITION_TYPE
#define OME_CONDITION_TYPE
Definition: OMEmutex.h:27
OME_CRITICAL_SECTION_OMETYPE_REF
@ OME_CRITICAL_SECTION_OMETYPE_REF
Definition: OMEmutex.h:48
OMEwaitForCondition
int OMEwaitForCondition(OME_CONDITION_TYPE *var, eOMEcriticalSectionLabel mutexID)
Definition: OMEmutex.cpp:172
OME_CRITICAL_SECTION_METHOD_INVOKE
@ OME_CRITICAL_SECTION_METHOD_INVOKE
Definition: OMEmutex.h:40
OMEtype
Fundamental ANY type for FARGOS/VISTA Object Management Environment.
Definition: OMEbaseType.h:250
OME_MUTEX_TYPE
#define OME_MUTEX_TYPE
Definition: OMEmutex.h:26
unlockMEM
void unlockMEM()
Definition: OMEmutex.cpp:348
OMEinitConditionVariable
int OMEinitConditionVariable(OME_CONDITION_TYPE *var)
Definition: OMEmutex.cpp:130
OMEloadVersion1Encodings
void OMEloadVersion1Encodings()
Definition: encodeVer1.cpp:631
OMEgetMiscellaneousMutex
uint32_t OMEgetMiscellaneousMutex()
Definition: OMEmutex.cpp:69
OMEthisProcessInfo::hostName
OMEstring hostName
Definition: OMEprocInfo.h:67
NONNULL_PARAMETERS
#define NONNULL_PARAMETERS(...)
Mark parameters to a function as not permitting null pointers.
Definition: compiler_hints.h:335
OME_CRITICAL_SECTION_IO_TABLE
@ OME_CRITICAL_SECTION_IO_TABLE
Definition: OMEmutex.h:46
srcID
const char srcID[]
Definition: catSym.c:17
lockMEM
void lockMEM()
Definition: OMEmutex.cpp:340
OMEconvertLocalRelativeTimeToAbsolute
OME_DLL_EXPORT int OMEconvertLocalRelativeTimeToAbsolute(OMEtype &result, uint32_t tArg, int asGMT)
Convert a local relative time to an OME absolute time reference.
Definition: OMEtime.cpp:89
OME_MUTEX_TYPE
#define OME_MUTEX_TYPE
Definition: timed_mutex.hpp:17
OMEwaitForNativeThread
int OMEwaitForNativeThread(uint64_t pid, void **retValue)
Definition: OMEmutex.cpp:312
NULL
#define NULL
Definition: tmp.o.cpp:327
OMEbase64ToBinary
OMEstring * OMEbase64ToBinary(const OMEstring &source)
Convert base-64 encoded text to its binary representation.
Definition: OMEbase64.cpp:156
OME_CONDITION_TYPE
#define OME_CONDITION_TYPE
Definition: timed_mutex.hpp:18
PTHREAD_MUTEX_RECURSIVE
#define PTHREAD_MUTEX_RECURSIVE
Definition: tmp.o.cpp:437
OMEtype.h
OME fundamental type implementation.
OMEstring::length
size_t length() const
Definition: OMEstring.h:401
FILE_TYPE_LICENSE_V2
#define FILE_TYPE_LICENSE_V2
Definition: OMElicense.cpp:18
OMEcurrentProcessInfo
OMEthisProcessInfo OMEcurrentProcessInfo
Automatic instantiation of OMEthisProcessInfo. When properly linked, the C++ static constructor mecha...
Definition: OMEprocInfo.cpp:217
OME_USED
const char srcID[] OME_USED
Definition: tick_time.cpp:24
OME_CONST_FUNCTION
#define OME_CONST_FUNCTION
Mark as an idempotent function that only accesses arguments – no global data.
Definition: compiler_hints.h:390
OMEgetUserName
OMEstring * OMEgetUserName()
Return the name of the user associated with the process.
Definition: OMEprocInfo.cpp:285
OME_CRITICAL_SECTION_OMETYPE_OP
@ OME_CRITICAL_SECTION_OMETYPE_OP
Definition: OMEmutex.h:45
OMEmanifests.h
OME constants and typedefs.
OMEendCriticalSection
void OMEendCriticalSection(eOMEcriticalSectionLabel regionID)
Definition: OMEmutex.cpp:236
OME_CRITICAL_SECTION_KERNEL_THREAD
@ OME_CRITICAL_SECTION_KERNEL_THREAD
Definition: OMEmutex.h:44
OME_EXPECT_FALSE
#define OME_EXPECT_FALSE(expr)
Annotation macro for conditional expression expected to be false.
Definition: compiler_hints.h:540
OMEnativeTaskFP
void *(* OMEnativeTaskFP)(void *)
Definition: OMEmutex.h:73
OMEtype::outputOnStream
STREAMTYPE & outputOnStream(STREAMTYPE &outputOnStream, int_fast16_t indent=0, uint8_t includeTypePrefix=OUTPUT_TYPENAME) const
Definition: OMEoutputOnStream.h:311
OMEmutex.h
OME mutex and condition variable implementation.
OME_CRITICAL_SECTION_MISCELLANEOUS
@ OME_CRITICAL_SECTION_MISCELLANEOUS
Definition: OMEmutex.h:47
main
int main(int argc, const char *argv[])
Definition: OMEmkLicense.cpp:13
OME_DLL_EXPORT
#define OME_DLL_EXPORT
Definition: compiler_hints.h:464
OMEdestroyConditionVariable
int OMEdestroyConditionVariable(OME_CONDITION_TYPE *var)
Definition: OMEmutex.cpp:154
OME_DEFAULT_COMPLEX_OUTPUT_MODE
@ OME_DEFAULT_COMPLEX_OUTPUT_MODE
Definition: OMEmanifests.h:116
eOMEcriticalSectionLabel
eOMEcriticalSectionLabel
Definition: OMEmutex.h:39
OMEcallWithNativeThread
uint64_t OMEcallWithNativeThread(OMEnativeTaskFP func, void *functionArg)
Definition: OMEmutex.cpp:283
OMEdestroyCriticalSectionMutex
int OMEdestroyCriticalSectionMutex(OME_MUTEX_TYPE *m)
Definition: OMEmutex.cpp:99
OME_ASSOC
@ OME_ASSOC
Definition: OMEmanifests.h:87
OMEinitCriticalSectionMutex
bool OMEinitCriticalSectionMutex(OME_MUTEX_TYPE *m, bool recursive)
Definition: OMEmutex.cpp:75
OME_CRITICAL_SECTION_THREAD_QUEUE
@ OME_CRITICAL_SECTION_THREAD_QUEUE
Definition: OMEmutex.h:41
Generated: Fri Jul 31 2020 18:19:14
Support Information