summaryrefslogtreecommitdiff
path: root/src/mongo/util/goodies.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/util/goodies.h')
-rw-r--r--src/mongo/util/goodies.h88
1 files changed, 0 insertions, 88 deletions
diff --git a/src/mongo/util/goodies.h b/src/mongo/util/goodies.h
index 3dcb74ef9d5..26e62d59396 100644
--- a/src/mongo/util/goodies.h
+++ b/src/mongo/util/goodies.h
@@ -154,94 +154,6 @@ namespace mongo {
typedef void *HANDLE;
#endif
- class TicketHolder {
- public:
- TicketHolder( int num ) : _mutex("TicketHolder") {
- _outof = num;
- _num = num;
- }
-
- bool tryAcquire() {
- scoped_lock lk( _mutex );
- return _tryAcquire();
- }
-
- void waitForTicket() {
- scoped_lock lk( _mutex );
-
- while( ! _tryAcquire() ) {
- _newTicket.wait( lk.boost() );
- }
- }
-
- void release() {
- {
- scoped_lock lk( _mutex );
- _num++;
- }
- _newTicket.notify_one();
- }
-
- void resize( int newSize ) {
- {
- scoped_lock lk( _mutex );
-
- int used = _outof - _num;
- if ( used > newSize ) {
- cout << "ERROR: can't resize since we're using (" << used << ") more than newSize(" << newSize << ")" << endl;
- return;
- }
-
- _outof = newSize;
- _num = _outof - used;
- }
-
- // Potentially wasteful, but easier to see is correct
- _newTicket.notify_all();
- }
-
- int available() const {
- return _num;
- }
-
- int used() const {
- return _outof - _num;
- }
-
- int outof() const { return _outof; }
-
- private:
-
- bool _tryAcquire(){
- if ( _num <= 0 ) {
- if ( _num < 0 ) {
- cerr << "DISASTER! in TicketHolder" << endl;
- }
- return false;
- }
- _num--;
- return true;
- }
-
- int _outof;
- int _num;
- mongo::mutex _mutex;
- boost::condition_variable_any _newTicket;
- };
-
- class TicketHolderReleaser {
- public:
- TicketHolderReleaser( TicketHolder * holder ) {
- _holder = holder;
- }
-
- ~TicketHolderReleaser() {
- _holder->release();
- }
- private:
- TicketHolder * _holder;
- };
-
/**
* this is a thread safe string