mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-16 14:16:09 -06:00
56 lines
No EOL
2.2 KiB
C++
56 lines
No EOL
2.2 KiB
C++
topic "GUI Mutex operations";
|
|
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class]
|
|
[l288;2 $$2,2#27521748481378242620020725143825:desc]
|
|
[0 $$3,0#96390100711032703541132217272105:end]
|
|
[H6;0 $$4,0#05600065144404261032431302351956:begin]
|
|
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item]
|
|
[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement]
|
|
[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
|
|
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
|
|
[b42;2 $$9,9#13035079074754324216151401829390:normal]
|
|
[2 $$0,0#00000000000000000000000000000000:Default]
|
|
[{_}
|
|
[ {{10000@(113.42.0) [s0;%% [*@7;4 GUI Mutex operations]]}}&]
|
|
[s3; &]
|
|
[s5;:Upp`:`:EnterGuiMutex`(`): [@(0.0.255) void]_[* EnterGuiMutex]()&]
|
|
[s2;%% Locks global GUI mutex. Reentrant.&]
|
|
[s3;%% &]
|
|
[s4; &]
|
|
[s5;:Upp`:`:TryEnterGuiMutex`(`): [@(0.0.255) bool]_[* TryEnterGuiMutex]()&]
|
|
[s2;%% Attempts to lock global GUI mutex. Returns true on success.&]
|
|
[s3; &]
|
|
[s4; &]
|
|
[s5;:Upp`:`:LeaveGuiMutex`(`): [@(0.0.255) void]_[* LeaveGuiMutex]()&]
|
|
[s2;%% Unlocks single level of global GUI mutex.&]
|
|
[s3; &]
|
|
[s4; &]
|
|
[s5;:Upp`:`:LeaveGuiMutexAll`(`): [@(0.0.255) int]_[* LeaveGuiMutexAll]()&]
|
|
[s2;%% Completely unlocks GUI mutex `- if it was locked multiple
|
|
times in reentrant fashion, unlocks all levels as to leave mutex
|
|
unlocked. Returns the number of levels unlocked.&]
|
|
[s3; &]
|
|
[s4; &]
|
|
[s5;:Upp`:`:EnterGuiMutex`(int`): [@(0.0.255) void]_[* EnterGuiMutex]([@(0.0.255) int]_[*@3 n
|
|
])&]
|
|
[s2;%% Locks GUI mutex [%-*@3 n] times.&]
|
|
[s3;%% &]
|
|
[s4; &]
|
|
[s5;:Upp`:`:ThreadHasGuiLock`(`): [@(0.0.255) bool]_[* ThreadHasGuiLock]()&]
|
|
[s2;%% Current thread has locked GUI mutex.&]
|
|
[s3; &]
|
|
[s4; &]
|
|
[s5;:Upp`:`:GetGuiLockLevel`(`): [@(0.0.255) int]_[* GetGuiLockLevel]()&]
|
|
[s2;%% Returns reentrancy level of GUI mutex.&]
|
|
[s3; &]
|
|
[s3; &]
|
|
[s4; &]
|
|
[s5; struct_[* GuiLock]&]
|
|
[s2;%% Constructor locks GUI mutex, destructor unlocks it.&]
|
|
[s3; &]
|
|
[s4; &]
|
|
[s5; class_[* GuiUnlock]&]
|
|
[s2;%% Constructor completely unlocks GUI mutex using LeaveGuiMutexAll
|
|
and stores the locking leve, destructor locks GUI mutex again
|
|
to the same level.&]
|
|
[s3; &]
|
|
[s0;%% ]] |