19#define CROSSPLATFORM_THREAD_T std::thread
22#define CROSSPLATFORM_MUTEX_T std::mutex
26#define CROSSPLATFORM_THREAD_T pros::task_t
27#define CROSSPLATFORM_MUTEX_T pros::Mutex
30#define NOT_INITIALIZE_TASK \
31 (strcmp(pros::c::task_get_name(pros::c::task_get_current()), "User Initialization (PROS)") != 0)
33#define NOT_COMP_INITIALIZE_TASK \
34 (strcmp(pros::c::task_get_name(pros::c::task_get_current()), "User Comp. Init. (PROS)") != 0)
41 const char *
const =
"OkapiLibCrossplatformTask")
45 const char *
const name =
"OkapiLibCrossplatformTask")
52 pros::c::task_create(ptr, params, TASK_PRIORITY_DEFAULT, TASK_STACK_DEPTH_DEFAULT, name))
61 if (pros::c::task_get_state(
thread) != pros::E_TASK_STATE_DELETED) {
62 pros::c::task_delete(
thread);
72 pros::c::task_notify_when_deleting(parent->
thread,
thread, 1, pros::E_NOTIFY_ACTION_INCR);
81 pros::c::task_notify_when_deleting(parent,
thread, 1, pros::E_NOTIFY_ACTION_INCR);
86 std::uint32_t
notifyTake(
const std::uint32_t) {
91 return pros::c::task_notify_take(
true, itimeout);
97 std::ostringstream ss;
98 ss << std::this_thread::get_id();
101 return std::string(pros::c::task_get_name(NULL));
116 while (!
mutex.take(1)) {
PROS API header provides high-level user functionality.
#define CROSSPLATFORM_THREAD_T
#define CROSSPLATFORM_MUTEX_T