Boost logo

Boost :

From: Michael Glassford (glassfordm_at_[hidden])
Date: 2004-07-15 17:09:31

Howard Hinnant wrote:

> On Jul 15, 2004, at 2:58 PM, Michael Glassford wrote:
>> My original intent was to add constructors that
>> would make it explicit whether you were asking for a blocking lock, a
>> try lock, or a timed lock, and to remove the ambiguity in the try_lock
>> constructors (rather arbitrarily, one is blocking, the other
>> non-blocking, even though they look just like the lock class
>> constructors which both block). There were some who argued against my
>> idea and none who supported it, so I dropped the it.
> Fwiw, I'm still toying with:
> lock(m, not_locked);
> lock(m, not_blocked);
> (or whatever the spelling was). I haven't been using that syntax in my
> examples simply because I don't have it coded that way and I try to
> compile my example code before I post it (at least usually). Anyway,
> I'm personally not ready to drop the enum set you proposed, or at least
> a subset of it.

OK, thanks for the feedback.

For what it's worth, then, the latest form of the proposal (which I'm
not sure I ever posted) looked like this:

namespace lock_state {
     typedef enum
     } lock_state;
} //namespace lock_state

namespace blocking_mode {
     typedef enum
     } blocking_mode;
} //namespace blocking_mode

ScopedLock / ScopedReadLock / ScopedWriteLock
     lock(M) //always locking, blocking
     lock(M, lock_state) //blocking

ScopedTryLock / ScopedTryReadLock / ScopedTryWriteLock
     try_lock(M) //always locking, BLOCKING
     try_lock(M, lock_state) //BLOCKING

     try_lock(M, blocking_mode) //always locking

ScopedTimedLock / ScopedTimedReadLock / ScopedTimedWriteLock
     timed_lock(M) //always locking, blocking
     timed_lock(M, lock_state) //blocking

     timed_lock(M, blocking_mode) //always locking

     timed_lock(M, t) //always locking, blocking for time t

> There's a lot of stuff that's been proposed. Perhaps we need competing
> implementations that can be played with (as opposed to just competing
> designs).


Boost list run by bdawes at, gregod at, cpdaniel at, john at