+ xbt_assert(task->category == nullptr, "Task %p(%s) already has a category (%s).", task, task->simdata->get_cname(),
+ task->category);
+
+ // if user provides a nullptr category, task is no longer traced
+ if (category == nullptr) {
+ xbt_free(task->category);
+ task->category = nullptr;
+ XBT_DEBUG("MSG task %p(%s), category removed", task, task->simdata->get_cname());
+ } else {
+ // set task category
+ task->category = xbt_strdup(category);
+ XBT_DEBUG("MSG task %p(%s), category %s", task, task->simdata->get_cname(), task->category);
+ }