mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-30 03:20:28 +00:00
LibC: Partially implement pthread_setcancel{state,type}()
With those partially implemented I can start to clone the SerenityOS git repository via HTTPS. The download still fails half-way through because SSL_read returns an error for reasons I haven't investigated yet.
This commit is contained in:
parent
a14a1f2d61
commit
759acdb938
Notes:
sideshowbarker
2024-07-18 18:21:46 +09:00
Author: https://github.com/gunnarbeutner Commit: https://github.com/SerenityOS/serenity/commit/759acdb938d Pull-request: https://github.com/SerenityOS/serenity/pull/7007 Reviewed-by: https://github.com/awesomekling Reviewed-by: https://github.com/linusg
2 changed files with 17 additions and 4 deletions
|
@ -555,14 +555,24 @@ int pthread_getname_np(pthread_t thread, char* buffer, size_t buffer_size)
|
|||
__RETURN_PTHREAD_ERROR(rc);
|
||||
}
|
||||
|
||||
int pthread_setcancelstate([[maybe_unused]] int state, [[maybe_unused]] int* oldstate)
|
||||
int pthread_setcancelstate(int state, int* oldstate)
|
||||
{
|
||||
TODO();
|
||||
if (oldstate)
|
||||
*oldstate = PTHREAD_CANCEL_DISABLE;
|
||||
dbgln("FIXME: Implement pthread_setcancelstate({}, ...)", state);
|
||||
if (state != PTHREAD_CANCEL_DISABLE)
|
||||
return EINVAL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_setcanceltype([[maybe_unused]] int type, [[maybe_unused]] int* oldtype)
|
||||
int pthread_setcanceltype(int type, int* oldtype)
|
||||
{
|
||||
TODO();
|
||||
if (oldtype)
|
||||
*oldtype = PTHREAD_CANCEL_DEFERRED;
|
||||
dbgln("FIXME: Implement pthread_setcanceltype({}, ...)", type);
|
||||
if (type != PTHREAD_CANCEL_DEFERRED)
|
||||
return EINVAL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
constexpr static pid_t spinlock_unlock_sentinel = 0;
|
||||
|
|
|
@ -97,6 +97,9 @@ int pthread_cond_timedwait(pthread_cond_t*, pthread_mutex_t*, const struct times
|
|||
#define PTHREAD_CANCEL_ENABLE 1
|
||||
#define PTHREAD_CANCEL_DISABLE 2
|
||||
|
||||
#define PTHREAD_CANCEL_DEFERRED 1
|
||||
#define PTHREAD_CANCEL_ASYNCHRONOUS 2
|
||||
|
||||
int pthread_cancel(pthread_t);
|
||||
int pthread_setcancelstate(int state, int* oldstate);
|
||||
int pthread_setcanceltype(int type, int* oldtype);
|
||||
|
|
Loading…
Reference in a new issue