added: Lock class -- locking resources by using Synchro object
the destructor automatically calls Unlock() git-svn-id: svn://ttmath.org/publicrep/winix/trunk@886 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
parent
14ae19143f
commit
72013046fc
|
@ -310,6 +310,7 @@ loadavg.o: ../templates/htmltextstream.h ../core/textstream.h misc.h
|
||||||
loadavg.o: ../../pikotools/utf8/utf8.h ../../pikotools/space/spacetojson.h
|
loadavg.o: ../../pikotools/utf8/utf8.h ../../pikotools/space/spacetojson.h
|
||||||
loadavg.o: session.h user.h plugindata.h rebus.h mount.h
|
loadavg.o: session.h user.h plugindata.h rebus.h mount.h
|
||||||
loadavg.o: ../templates/locale.h
|
loadavg.o: ../templates/locale.h
|
||||||
|
lock.o: lock.h synchro.h
|
||||||
log.o: log.h textstream.h logmanipulators.h
|
log.o: log.h textstream.h logmanipulators.h
|
||||||
log.o: ../../pikotools/textstream/textstream.h ../../pikotools/space/space.h
|
log.o: ../../pikotools/textstream/textstream.h ../../pikotools/space/space.h
|
||||||
log.o: ../../pikotools/date/date.h ../../pikotools/convert/convert.h
|
log.o: ../../pikotools/date/date.h ../../pikotools/convert/convert.h
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
o = acceptbaseparser.o app.o basethread.o bbcodeparser.o compress.o config.o crypt.o dircontainer.o dirs.o groups.o htmlfilter.o httpsimpleparser.o image.o item.o job.o lastcontainer.o loadavg.o log.o misc.o mount.o mountparser.o mounts.o plugin.o plugindata.o postmultiparser.o rebus.o request.o run.o session.o sessioncontainer.o sessionmanager.o sessionparser.o slog.o synchro.o system.o threadmanager.o timezone.o timezones.o user.o users.o
|
o = acceptbaseparser.o app.o basethread.o bbcodeparser.o compress.o config.o crypt.o dircontainer.o dirs.o groups.o htmlfilter.o httpsimpleparser.o image.o item.o job.o lastcontainer.o loadavg.o lock.o log.o misc.o mount.o mountparser.o mounts.o plugin.o plugindata.o postmultiparser.o rebus.o request.o run.o session.o sessioncontainer.o sessionmanager.o sessionparser.o slog.o synchro.o system.o threadmanager.o timezone.o timezones.o user.o users.o
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
/*
|
||||||
|
* This file is a part of Winix
|
||||||
|
* and is not publicly distributed
|
||||||
|
*
|
||||||
|
* Copyright (c) 2012, Tomasz Sowa
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "lock.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Lock::Lock()
|
||||||
|
{
|
||||||
|
synchro = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Lock::Lock(Synchro * synchro_)
|
||||||
|
{
|
||||||
|
synchro = synchro_;
|
||||||
|
synchro->Lock();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Lock::Lock(Synchro & synchro_)
|
||||||
|
{
|
||||||
|
synchro = &synchro_;
|
||||||
|
synchro->Lock();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Lock::~Lock()
|
||||||
|
{
|
||||||
|
Unlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Lock::Unlock()
|
||||||
|
{
|
||||||
|
if( synchro )
|
||||||
|
{
|
||||||
|
synchro->Unlock();
|
||||||
|
synchro = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
* This file is a part of Winix
|
||||||
|
* and is not publicly distributed
|
||||||
|
*
|
||||||
|
* Copyright (c) 2012, Tomasz Sowa
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef headerfile_winix_core_lock
|
||||||
|
#define headerfile_winix_core_lock
|
||||||
|
|
||||||
|
#include "synchro.h"
|
||||||
|
|
||||||
|
|
||||||
|
class Lock
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
Lock(Synchro * synchro_);
|
||||||
|
Lock(Synchro & synchro_);
|
||||||
|
|
||||||
|
~Lock();
|
||||||
|
|
||||||
|
void Unlock();
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
Synchro * synchro;
|
||||||
|
|
||||||
|
Lock();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue