I added some C/C++ code for the Win32 API. My reasoning is that--parallelization algorithms aside--how to access synchronization objects in a language is becoming almost as important as that language's conditional and loop processing facilities. I think code should be offered for other languages (and APIs...I don't know how to do it in pthreads or C++0x) as well.--Short Circuit 04:57, 3 November 2008 (UTC)
- With Win32 API CRITICAL_SECTION objects are often used as local mutexes, non-reentrant, if I correctly remember. They are less heavy weighted than mutex objects, which can serve as global mutexes. --Dmitry-kazakov 09:25, 3 November 2008 (UTC)
- I know of CRITICAL_SECTIONs and of some of their tradeoffs, but I haven't used them enough to write code from memory. I also don't have a Win32 programming environment readily available at home, and I'm prohibited from working on Rosetta Code on company hardware. If someone wanted to add setup, lock, unlock and destruction code for CRITICAL_SECTIONs, that would be entirely appropriate, though. --Short Circuit 03:58, 4 November 2008 (UTC)
Is this a Task?
- It appears to be both a task and an encycloypædic entry. (Wiki pages can have multiple inheritance…) —Donal Fellows 07:45, 14 July 2009 (UTC)
The normal format for a task is to not have headings within the task description, before the langiage examples. I thought this was to keep a consistant look to the page and the table of contents.
- When I originally wrote it, it was supposed to be an encyclopedic entry. Later, people added examples, and it became more task-like. I would really, really like to preserve its encyclopedic nature. Perhaps those sections can be made into subpages. For example, Mutex/Global, Mutex/Local, Mutex/Reentrant (which would spec coding reentrant vs non-reentrant examples), and a "see also" pointing to Dining philosophers. --Michael Mol 12:15, 1 April 2011 (UTC)