reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

projects/openmp/runtime/src/kmp_taskdeps.cpp
   37   node->dn.successors = NULL;
   38   node->dn.task = NULL; // will point to the rigth task
   41     node->dn.mtx_locks[i] = NULL;
   42   node->dn.mtx_num_locks = 0;
   43   __kmp_init_lock(&node->dn.lock);
   44   KMP_ATOMIC_ST_RLX(&node->dn.nrefs, 1); // init creates the first reference
   51   KMP_ATOMIC_INC(&node->dn.nrefs);
  226     kmp_taskdata_t *task_source = KMP_TASK_TO_TASKDATA(source->dn.task);
  246     if (dep->dn.task) {
  247       KMP_ACQUIRE_DEPNODE(gtid, dep);
  248       if (dep->dn.task) {
  250         dep->dn.successors = __kmp_add_node(thread, dep->dn.successors, node);
  250         dep->dn.successors = __kmp_add_node(thread, dep->dn.successors, node);
  257       KMP_RELEASE_DEPNODE(gtid, dep);
  271   if (sink->dn.task) {
  273     KMP_ACQUIRE_DEPNODE(gtid, sink);
  274     if (sink->dn.task) {
  276       sink->dn.successors = __kmp_add_node(thread, sink->dn.successors, source);
  276       sink->dn.successors = __kmp_add_node(thread, sink->dn.successors, source);
  283     KMP_RELEASE_DEPNODE(gtid, sink);
  385         if (node->dn.mtx_locks[m] < info->mtx_lock) {
  387           for (int n = node->dn.mtx_num_locks; n > m; --n) {
  390             node->dn.mtx_locks[n] = node->dn.mtx_locks[n - 1];
  390             node->dn.mtx_locks[n] = node->dn.mtx_locks[n - 1];
  392           node->dn.mtx_locks[m] = info->mtx_lock;
  397       node->dn.mtx_num_locks++;
  458   node->dn.npredecessors = -1;
  469   node->dn.task = task;
  479       node->dn.npredecessors.fetch_add(npredecessors) + npredecessors;
  701   kmp_flag_32 flag((std::atomic<kmp_uint32> *)&node.dn.npredecessors, 0U);
  702   while (node.dn.npredecessors > 0) {
projects/openmp/runtime/src/kmp_taskdeps.h
   27   kmp_int32 n = KMP_ATOMIC_DEC(&node->dn.nrefs) - 1;
   29     KMP_ASSERT(node->dn.nrefs == 0);
  106   KMP_ACQUIRE_DEPNODE(gtid, node);
  107   node->dn.task =
  109   KMP_RELEASE_DEPNODE(gtid, node);
  112   for (kmp_depnode_list_t *p = node->dn.successors; p; p = next) {
  114     kmp_int32 npredecessors = KMP_ATOMIC_DEC(&successor->dn.npredecessors) - 1;
  120       if (successor->dn.task) {
  124         __kmp_omp_task(gtid, successor->dn.task, false);
projects/openmp/runtime/src/kmp_tasking.cpp
  278   if (node && (node->dn.mtx_num_locks > 0)) {
  279     for (int i = 0; i < node->dn.mtx_num_locks; ++i) {
  281       if (__kmp_test_lock(node->dn.mtx_locks[i], gtid))
  285         __kmp_release_lock(node->dn.mtx_locks[j], gtid);
  289     node->dn.mtx_num_locks = -node->dn.mtx_num_locks;
  289     node->dn.mtx_num_locks = -node->dn.mtx_num_locks;
  855   if (node && (node->dn.mtx_num_locks < 0)) {
  857     node->dn.mtx_num_locks = -node->dn.mtx_num_locks;
  857     node->dn.mtx_num_locks = -node->dn.mtx_num_locks;
  858     for (int i = node->dn.mtx_num_locks - 1; i >= 0; --i) {
  860       __kmp_release_lock(node->dn.mtx_locks[i], gtid);