Compare commits

..

7 commits

Author SHA1 Message Date
77031b6edc Tweak compare_exchange_weak(...) in spin-lock 2024-01-01 12:25:40 +09:00
db7331685b Fix invalid use of mutex in TSLQueue
Mutex was removed in favor of the custom SharedSpinLock.
2024-01-01 12:25:40 +09:00
d76d1197ce Don't fail on "try" fns if failed to get spinLock
In SharedSpinLock: Only fail on "try" fns after spinLock was acquired
and condition is not met.
2024-01-01 12:25:40 +09:00
2675f6918b Refactor shared-spin-lock to use atomic "spinLock" 2024-01-01 12:25:40 +09:00
c47a20a10b Minor refactorings 2024-01-01 12:25:40 +09:00
a3e0f941fc Reland C++11 "shared_lock" with iter remove fix
On iterator remove, the iterator will trade the read lock for a write
lock, and trade back for a read lock once the remove has been completed.
2024-01-01 12:25:40 +09:00
f4ed1aa136 Note in documentation about thread safety
All checks were successful
Publish doxygen documentation to seodisparate.com / doxygen-gen-and-publish (push) Successful in 0s
Basically, all functions should be thread-safe unless mentioned
otherwise.
2024-01-01 12:25:04 +09:00

View file

@ -6,6 +6,9 @@
/*!
* \file UDPC.h
* \brief Public API for UDPConnection
*
* Note that all functions are thread-safe unless mentioned otherwise in the
* function's documentation.
*/
#ifndef UDPC_CONNECTION_H
@ -861,8 +864,6 @@ UDPC_EXPORT const char *UDPC_atostr(UDPC_HContext ctx, UDPC_IPV6_ADDR_TYPE addr)
* \warning The returned pointer must be freed with free(), or
* UDPC_atostr_unsafe_free(), or UDPC_atostr_unsafe_free_ptr().
*
* This function is thread-safe.
*
* UDPC internally uses UDPC_atostr() for logging. This means that while UDPC
* is running, a string created with UDPC_atostr() may be overwritten
* eventually by UDPC. To avoid this situation, UDPC_atostr_unsafe() or
@ -879,8 +880,6 @@ UDPC_EXPORT const char *UDPC_atostr_unsafe(UDPC_IPV6_ADDR_TYPE addr);
* \warning The returned pointer must be freed with free(), or
* UDPC_atostr_unsafe_free(), or UDPC_atostr_unsafe_free_ptr().
*
* This function is thread-safe.
*
* UDPC internally uses UDPC_atostr() for logging. This means that while UDPC
* is running, a string created with UDPC_atostr() may be overwritten
* eventually by UDPC. To avoid this situation, UDPC_atostr_unsafe() or
@ -891,8 +890,6 @@ UDPC_EXPORT const char *UDPC_atostr_unsafe_cid(UDPC_ConnectionId cid);
/*!
* \brief Free an addr string created with UDPC_atostr_unsafe().
*
* This function is thread-safe.
*/
UDPC_EXPORT void UDPC_atostr_unsafe_free(const char *addrBuf);
@ -900,8 +897,6 @@ UDPC_EXPORT void UDPC_atostr_unsafe_free(const char *addrBuf);
* \brief Free an addr string created with UDPC_atostr_unsafe() and zeroes the
* pointer.
*
* This function is thread-safe.
*
* \code{.c}
* UDPC_ConnectionId aConnectionId = ...;
* const char *addrString = UDPC_atostr_unsafe_cid(aConnectionId);