Description Summary
This pattern identifies situations where the shared storable data element or member data element, declared with the Create action, is accessed outside a critical section of the application via the Read or Write action. The critical nature of the section is technology and platform dependent. As examples, in C/C++, critical nature comes from the use of 'mtx_lock' and 'mtx_unlock' from the 'threads.h' standard C language API, or from the use of 'pthread_mutex_lock' and 'pthread_mutex_unlock' from the 'pthreads.h' C/C++ POSIX API, or from the use of 'EnterCriticalSection' and 'LeaveCriticalSection' from the 'windows.h' C/C++ Win32 API. As other examples, in Java, critical nature comes from the use of the 'synchronized' keyword, and in C#, critical nature comes from the use of the 'lock' keyword.