acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
multiple_lock.h
1#pragma once
2
3
4#include "acme/prototype/prototype/bits.h"
5#include "synchronization_array.h"
6
7
8class CLASS_DECL_ACME multiple_lock
9{
10public:
11
12
13 synchronization_array & m_synchronizationa;
14 bits < ::u64 > m_bitsLocked;
15
16
17 multiple_lock(synchronization_array & synchronizationa, bool bInitialLock = false);
18 //multiple_lock(const synchronization_array & synca,bool bInitialLock = false);
19 //multiple_lock(::collection::count c, const synchronization_array & synca, bool bInitialLock = false);
20 ~multiple_lock();
21
22
23 //void construct(const synchronization_array & synca,bool bInitialLock = false);
24
25
26 ::e_status lock(const class time & tickTimeout = ::time::infinity(), bool bWaitForAll = true, ::u32 dwWakeMask = 0);
27 void unlock();
28 void unlock(::i32 lCount, ::i32 * lPrevCount = nullptr);
29 bool is_locked(::collection::index iItem);
30
31
32};
33
34
35
Definition e_status.h:30
Definition synchronization_array.h:54
Definition aaa_time.h:13