Skip to content

Commit 27a9c9f

Browse files
more cleanup
1 parent ddcb3d6 commit 27a9c9f

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

libc/src/__support/threads/callonce.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@
2525
namespace LIBC_NAMESPACE_DECL {
2626

2727
// Common definitions
28-
using CallOnceCallback = void(void);
2928
namespace callonce_impl {
30-
int callonce_slowpath(CallOnceFlag *flag, CallOnceCallback *callback);
29+
template <class CallOnceCallback>
30+
[[gnu::noinline]] int callonce_slowpath(CallOnceFlag *flag,
31+
CallOnceCallback callback);
3132
} // namespace callonce_impl
3233

33-
LIBC_INLINE int callonce(CallOnceFlag *flag, CallOnceCallback *callback) {
34+
template <class CallOnceCallback>
35+
LIBC_INLINE int callonce(CallOnceFlag *flag, CallOnceCallback callback) {
3436
if (LIBC_LIKELY(callonce_impl::callonce_fastpath(flag)))
3537
return 0;
3638

libc/src/pthread/pthread_once.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ namespace LIBC_NAMESPACE_DECL {
1717

1818
LLVM_LIBC_FUNCTION(int, pthread_once,
1919
(pthread_once_t * flag, __pthread_once_func_t func)) {
20-
return callonce(reinterpret_cast<CallOnceFlag *>(flag),
21-
reinterpret_cast<CallOnceCallback *>(func));
20+
return callonce(reinterpret_cast<CallOnceFlag *>(flag), func);
2221
}
2322

2423
} // namespace LIBC_NAMESPACE_DECL

libc/src/threads/call_once.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ namespace LIBC_NAMESPACE_DECL {
1717

1818
LLVM_LIBC_FUNCTION(void, call_once,
1919
(once_flag * flag, __call_once_func_t func)) {
20-
callonce(reinterpret_cast<CallOnceFlag *>(flag),
21-
reinterpret_cast<CallOnceCallback *>(func));
20+
callonce(reinterpret_cast<CallOnceFlag *>(flag), func);
2221
}
2322

2423
} // namespace LIBC_NAMESPACE_DECL

0 commit comments

Comments
 (0)