Merge pull request #60502 from timothyqiu/sem-api
This commit is contained in:
commit
4c47e407a7
3 changed files with 16 additions and 2 deletions
|
@ -2613,6 +2613,10 @@ Error _Semaphore::wait() {
|
|||
return OK; // Can't fail anymore; keep compat
|
||||
}
|
||||
|
||||
Error _Semaphore::try_wait() {
|
||||
return semaphore.try_wait() ? OK : ERR_BUSY;
|
||||
}
|
||||
|
||||
Error _Semaphore::post() {
|
||||
semaphore.post();
|
||||
return OK; // Can't fail anymore; keep compat
|
||||
|
@ -2621,6 +2625,7 @@ Error _Semaphore::post() {
|
|||
void _Semaphore::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("wait"), &_Semaphore::wait);
|
||||
ClassDB::bind_method(D_METHOD("post"), &_Semaphore::post);
|
||||
ClassDB::bind_method(D_METHOD("try_wait"), &_Semaphore::try_wait);
|
||||
}
|
||||
|
||||
///////////////
|
||||
|
|
|
@ -680,6 +680,7 @@ class _Semaphore : public Reference {
|
|||
|
||||
public:
|
||||
Error wait();
|
||||
Error try_wait();
|
||||
Error post();
|
||||
};
|
||||
|
||||
|
|
|
@ -13,13 +13,21 @@
|
|||
<method name="post">
|
||||
<return type="int" enum="Error" />
|
||||
<description>
|
||||
Lowers the [Semaphore], allowing one more thread in. Returns [constant OK] on success, [constant ERR_BUSY] otherwise.
|
||||
Lowers the [Semaphore], allowing one more thread in.
|
||||
[b]Note:[/b] This method internals' can't possibly fail, but an error code is returned for backwards compatibility, which will always be [constant OK].
|
||||
</description>
|
||||
</method>
|
||||
<method name="try_wait">
|
||||
<return type="int" enum="Error" />
|
||||
<description>
|
||||
Like [method wait], but won't block, so if the value is zero, fails immediately and returns [constant ERR_BUSY]. If non-zero, it returns [constant OK] to report success.
|
||||
</description>
|
||||
</method>
|
||||
<method name="wait">
|
||||
<return type="int" enum="Error" />
|
||||
<description>
|
||||
Tries to wait for the [Semaphore], if its value is zero, blocks until non-zero. Returns [constant OK] on success, [constant ERR_BUSY] otherwise.
|
||||
Waits for the [Semaphore], if its value is zero, blocks until non-zero.
|
||||
[b]Note:[/b] This method internals' can't possibly fail, but an error code is returned for backwards compatibility, which will always be [constant OK].
|
||||
</description>
|
||||
</method>
|
||||
</methods>
|
||||
|
|
Loading…
Reference in a new issue