您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CILK_ASSERT函数代码示例

51自学网 2021-06-01 20:01:36
  C++
这篇教程C++ CILK_ASSERT函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中CILK_ASSERT函数的典型用法代码示例。如果您正苦于以下问题:C++ CILK_ASSERT函数的具体用法?C++ CILK_ASSERT怎么用?C++ CILK_ASSERT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了CILK_ASSERT函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: fprintf

elem *cilkred_map::insert_no_rehash(__cilkrts_worker           *w,				    void                       *key,				    __cilkrts_hyperobject_base *hb,                                    void                       *val){#if REDPAR_DEBUG >= 2    fprintf(stderr, "[W=%d, desc=insert_no_rehash, this_map=%p]/n",	    w->self, this);    verify_current_wkr(w);#endif        CILK_ASSERT((w == 0 && g == 0) || w->g == g);    CILK_ASSERT(key != 0);    CILK_ASSERT(val != 0);	        elem *el = grow(w, &(buckets[hashfun(this, key)]));#if REDPAR_DEBUG >= 3    fprintf(stderr, "[W=%d, this=%p, inserting key=%p, val=%p, el = %p]/n",	    w->self, this, key, val, el);#endif    el->key = key;    el->hb  = hb;    el->val = val;    ++nelem;    return el;}
开发者ID:iu-parfunc,项目名称:cilk_releases,代码行数:30,


示例2: ITT_SYNC_CREATE

struct os_mutex *__cilkrts_os_mutex_create(void){    int status;    struct os_mutex *mutex = (struct os_mutex *)malloc(sizeof(struct os_mutex));    pthread_mutexattr_t attr;    ITT_SYNC_CREATE(mutex, "OS Mutex");    if (!mutex) {        if (static_mutex_used) {            __cilkrts_bug("Cilk RTS library initialization failed");        } else {            static_mutex_used = 1;            mutex = &static_mutex;        }    }    status = pthread_mutexattr_init(&attr);    CILK_ASSERT (status == 0);#if defined DEBUG || CILK_LIB_DEBUG #ifdef PTHREAD_MUTEX_ERRORCHECK    status = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);#else    status = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK_NP);#endif    CILK_ASSERT (status == 0);#endif    status = pthread_mutex_init (&mutex->mutex, &attr);    CILK_ASSERT (status == 0);    pthread_mutexattr_destroy(&attr);    return mutex;}
开发者ID:ElPetros,项目名称:cilk-runtime,代码行数:33,


示例3: deque_assert_ownership

static Closure *deque_xtract_bottom(CilkWorkerState *const ws, int pn){     Closure *cl;     deque_assert_ownership(ws, pn);     cl = USE_PARAMETER(deques)[pn].bottom;     if (cl) {	  CILK_ASSERT(ws, cl->owner_ready_deque == pn);	  USE_PARAMETER(deques)[pn].bottom = cl->prev_ready;	  if (cl == USE_PARAMETER(deques)[pn].top) {	       CILK_ASSERT(ws, cl->prev_ready == (Closure *) NULL);	       USE_PARAMETER(deques)[pn].top = (Closure *) NULL;	  } else {	       CILK_ASSERT(ws, cl->prev_ready);	       (cl->prev_ready)->next_ready = (Closure *) NULL;	  }	  WHEN_CILK_DEBUG(cl->owner_ready_deque = NOBODY);     } else {	  CILK_ASSERT(ws, USE_PARAMETER(deques)[pn].top == (Closure *) NULL);     }          return cl;}
开发者ID:106ohm,项目名称:eigengraph,代码行数:25,


示例4: CILK_ASSERT

void cilk_fiber::reset_state(cilk_fiber_proc start_proc){    // Setup the fiber and return.    this->m_start_proc = start_proc;        CILK_ASSERT(!this->is_resumable());    CILK_ASSERT(NULL == this->m_pending_remove_ref);    CILK_ASSERT(NULL == this->m_pending_pool);}
开发者ID:RogerFederer03,项目名称:Real_Time_System_Projects,代码行数:9,


示例5: replay_record_steal_internal

/** * Record data for a successful steal. * * The pedigree for a STEAL record is the pedigree of the stolen frame. * * @note It's assumed that replay_record_steal() has already checked that we're * recording a log and that the record/replay functionality has not been * compiled out. * * @param w The worker stealing a frame. * @param victim_id The ID of the worker which had it's frame stolen. */void replay_record_steal_internal(__cilkrts_worker *w, int32_t victim_id){    // Follow the pedigree chain using worker's stack frame    CILK_ASSERT(w->l->next_frame_ff);    CILK_ASSERT(w->l->next_frame_ff->call_stack);    // Record steal: STEAL pedigree victim_id thief_id    write_to_replay_log (w, PED_TYPE_STR_STEAL,                         &(w->l->next_frame_ff->call_stack->parent_pedigree),                         victim_id);}
开发者ID:kraj,项目名称:gcc,代码行数:23,


示例6: __cilkrts_hyper_create

CILK_EXPORTvoid __cilkrts_hyper_create(__cilkrts_hyperobject_base *hb){    // This function registers the specified hyperobject in the current    // reducer map and registers the initial value of the hyperobject as the    // leftmost view of the reducer.    __cilkrts_worker *w = __cilkrts_get_tls_worker();    if (! w) {        // If there is no worker, then there is nothing to do: The iniitial        // value will automatically be used as the left-most view when we        // enter Cilk.        return;    }    // Disable Cilkscreen for the duration of this call.  The destructor for    // this class will re-enable Cilkscreen when the method returns.  This    // will prevent Cilkscreen from reporting apparent races in reducers    DisableCilkscreen x;    void* key = get_hyperobject_key(hb);    void* view = get_leftmost_view(key);    cilkred_map *h = w->reducer_map;    if (__builtin_expect(!h, 0)) {	h = install_new_reducer_map(w);#if REDPAR_DEBUG >= 2	fprintf(stderr, "[W=%d, hb=%p, hyper_create, isntalled new map %p, view=%p]/n",		w->self, hb, h, view);#endif    }    /* Must not exist. */    CILK_ASSERT(h->lookup(key) == NULL);#if REDPAR_DEBUG >= 3    verify_current_wkr(w);    fprintf(stderr, "[W=%d, hb=%p, lookup in map %p of view %p, should be null]/n",	    w->self, hb, h, view);    fprintf(stderr, "W=%d, h=%p, inserting key %p, view%p/n",	    w->self,	    h,	    &(hb->__c_monoid),	    view);#endif        if (h->merging)        __cilkrts_bug("User error: hyperobject used by another hyperobject");    CILK_ASSERT(w->reducer_map == h);    // The address of the leftmost value is the same as the key for lookup.    (void) h->rehash_and_insert(w, view, hb, view);}
开发者ID:0day-ci,项目名称:gcc,代码行数:52,


示例7: CILK_ASSERT

void cilkred_map::make_buckets(__cilkrts_worker *w,                                size_t            new_nbuckets){         nbuckets = new_nbuckets;    CILK_ASSERT(is_power_of_2(nbuckets));#if defined __GNUC__ && defined __ICC     /* bug workaround -- suppress calls to _intel_fast_memset */    bucket *volatile*new_buckets = (bucket *volatile*)#else    bucket **new_buckets = (bucket **)#endif        __cilkrts_frame_malloc(w, nbuckets * sizeof(*(buckets)));#if REDPAR_DEBUG >= 1    fprintf(stderr, "W=%d, desc=make_buckets, new_buckets=%p, new_nbuckets=%zd/n",	    w->self, new_buckets, new_nbuckets);#endif    for (size_t i = 0; i < new_nbuckets; ++i)        new_buckets[i] = 0;#if defined __GNUC__ && defined __ICC     buckets = (bucket **)new_buckets;#else    buckets = new_buckets;#endif    nelem = 0;}
开发者ID:iu-parfunc,项目名称:cilk_releases,代码行数:28,


示例8: __cilkrts_save_exception_state

void __cilkrts_save_exception_state(__cilkrts_worker *w, full_frame *ff){    save_exception_info(w, __cxa_get_globals(), 0, false, "undo-detach");    CILK_ASSERT(NULL == ff->pending_exception);    ff->pending_exception = w->l->pending_exception;    w->l->pending_exception = NULL;    }
开发者ID:neboat,项目名称:cilkplusrts-cilk-ok,代码行数:7,


示例9: fprintf

void cilk_fiber::suspend_self_and_resume_other(cilk_fiber* other){#if FIBER_DEBUG >=1    fprintf(stderr, "suspend_self_and_resume_other: self =%p, other=%p [owner=%p, resume_sf=%p]/n",            this, other, other->owner, other->resume_sf);#endif    // Decrement my reference count (to suspend)    // Increment other's count (to resume)    // Suspended fiber should have a reference count of at least 1.  (It is not in a pool).    this->dec_ref_count();    other->inc_ref_count();    this->assert_ref_count_at_least(1);    // Pass along my owner.    other->owner = this->owner;    this->owner  = NULL;    // Change this fiber to resumable.    CILK_ASSERT(!this->is_resumable());    this->set_resumable(true);    // Normally, I'd assert other->is_resumable().  But this flag may    // be false the first time we try to "resume" a fiber.    cilk_fiber_sysdep* self = this->sysdep();    self->suspend_self_and_resume_other_sysdep(other->sysdep());    // HAVE RESUMED EXECUTION    // When we come back here, we should have at least two references:    // one for the fiber being allocated / out of a pool, and one for it being active.    this->assert_ref_count_at_least(2);}
开发者ID:RogerFederer03,项目名称:Real_Time_System_Projects,代码行数:32,


示例10: cilk_fiber_pool_destroy

void cilk_fiber_pool_destroy(cilk_fiber_pool* pool){    CILK_ASSERT(cilk_fiber_pool_sanity_check(pool, "pool_destroy"));    // Lock my own pool, if I need to.    if (pool->lock) {        spin_mutex_lock(pool->lock);    }    // Give any remaining fibers to parent pool.    if (pool->parent) {        cilk_fiber_pool_move_fibers_to_parent_pool(pool, 0);    }    // Unlock pool.    if (pool->lock) {        spin_mutex_unlock(pool->lock);    }    // If I have any left in my pool, just free them myself.    // This method may acquire the pool lock.    cilk_fiber_pool_free_fibers_from_pool(pool, 0, NULL);    // Destroy the lock if there is one.    if (pool->lock) {        spin_mutex_destroy(pool->lock);    }    __cilkrts_free(pool->fibers);}
开发者ID:RogerFederer03,项目名称:Real_Time_System_Projects,代码行数:29,


示例11: cilk_fiber_pool_set_fiber_limit

void cilk_fiber_pool_set_fiber_limit(cilk_fiber_pool* root_pool,                                     unsigned max_fibers_to_allocate){    // Should only set limit on root pool, not children.    CILK_ASSERT(NULL == root_pool->parent);    root_pool->alloc_max = max_fibers_to_allocate;}
开发者ID:RogerFederer03,项目名称:Real_Time_System_Projects,代码行数:7,


示例12: replay_term

/* * Do any necessary cleanup for the logs - See record-replay.h for full * routine header. */void replay_term(global_state_t *g){    // Free memory for the record/replay log file name, if we've got one    if (g->record_replay_file_name)        __cilkrts_free(g->record_replay_file_name);    // Per-worker cleanup    for(int i = 0; i < g->total_workers; ++i)    {        __cilkrts_worker *w = g->workers[i];        // Close the log files, if we've opened them        if(w->l->record_replay_fptr)            fclose(w->l->record_replay_fptr);        if (w->l->replay_list_root)        {            // We should have consumed the entire list            CILK_ASSERT(ped_type_last == w->l->replay_list_entry->m_type);            replay_entry_t *entry = w->l->replay_list_root;            while (ped_type_last != entry->m_type)            {                // Free the pedigree memory for each entry                entry->unload();                entry++;            }            __cilkrts_free(w->l->replay_list_root);            w->l->replay_list_root = NULL;            w->l->replay_list_entry = NULL;        }    }}
开发者ID:kraj,项目名称:gcc,代码行数:37,


示例13: __cilkrts_os_mutex_unlock

void __cilkrts_os_mutex_unlock(struct os_mutex *p){    int status;    ITT_SYNC_RELEASING(p);    status = pthread_mutex_unlock (&p->mutex);    CILK_ASSERT(status == 0);}
开发者ID:ElPetros,项目名称:cilk-runtime,代码行数:7,


示例14: walk_pedigree_nodes

__CILKRTS_BEGIN_EXTERN_C/** * Walk the pedigree and generate a string representation with underscores * between terms.  Currently does a recursive walk to generate a forward * pedigree. * * @param p The buffer that is to be filled.  Assumed to be PEDIGREE_BUFF_SIZE * characters long * @param pnode The initial pedigree term to be written. * * @return A pointer into the pedigree string buffer after a term has been * written. */staticchar * walk_pedigree_nodes(char *p, const __cilkrts_pedigree *pnode){    CILK_ASSERT(pnode);    if (pnode->parent)    {        p = walk_pedigree_nodes(p, pnode->parent);        p += cilk_snprintf_s(p, PEDIGREE_BUFF_SIZE, "%s", (char *)"_");    }    return p + cilk_snprintf_l(p, PEDIGREE_BUFF_SIZE, "%" PRIu64, pnode->rank);}
开发者ID:kraj,项目名称:gcc,代码行数:25,


示例15: __cilkrts_destroy_reducer_map

/* Destroy a reducer map.  The map must have been allocated   from the worker's global context and should have been   allocated from the same worker. */void __cilkrts_destroy_reducer_map(__cilkrts_worker *w, cilkred_map *h){    CILK_ASSERT((w == 0 && h->g == 0) || w->g == h->g);    verify_current_wkr(w);    /* the reducer map is allowed to contain el->val == NULL here (and       only here).  We set el->val == NULL only when we know that the       map will be destroyed immediately afterwards. */    DBG h->check(/*allow_null_val=*/true);    bucket *b;    size_t i;    for (i = 0; i < h->nbuckets; ++i) {        b = h->buckets[i];        if (b) {            elem *el;            for (el = b->el; el->key; ++el) {                if (el->val)                    el->destroy();            }        }    }    free_buckets(w, h->buckets, h->nbuckets);#if REDPAR_DEBUG >= 1    fprintf(stderr, "W=%d, destroy_red_map, freeing map h=%p, size=%zd/n",	    w->self, h, sizeof(*h));#endif        __cilkrts_frame_free(w, h, sizeof(*h));}
开发者ID:iu-parfunc,项目名称:cilk_releases,代码行数:36,


示例16: __cilkrts_mutex_lock

void __cilkrts_mutex_lock(__cilkrts_worker *w, struct mutex *m){    int count;    const int maxspin = 1000; /* SWAG */    NOTE_INTERVAL(w, INTERVAL_MUTEX_LOCK);    if (!TRY_ACQUIRE(m)) {        START_INTERVAL(w, INTERVAL_MUTEX_LOCK_SPINNING);        count = 0;        do {            do {                __cilkrts_short_pause();                if (++count >= maxspin) {                    STOP_INTERVAL(w, INTERVAL_MUTEX_LOCK_SPINNING);                    START_INTERVAL(w, INTERVAL_MUTEX_LOCK_YIELDING);                    /* let the OS reschedule every once in a while */                    __cilkrts_yield();                    STOP_INTERVAL(w, INTERVAL_MUTEX_LOCK_YIELDING);                    START_INTERVAL(w, INTERVAL_MUTEX_LOCK_SPINNING);                    count = 0;                }            } while (m->lock != 0);        } while (!TRY_ACQUIRE(m));        STOP_INTERVAL(w, INTERVAL_MUTEX_LOCK_SPINNING);    }    CILK_ASSERT(m->owner == 0);    m->owner = w;}
开发者ID:ElPetros,项目名称:cilk-runtime,代码行数:29,


示例17: __CILKRTS_STRAND_PURE

CILK_EXPORT void* __CILKRTS_STRAND_PURE(    __cilkrts_hyper_lookup(__cilkrts_hyperobject_base *hb)){    __cilkrts_worker* w = __cilkrts_get_tls_worker_fast();    void* key = get_leftmost_view(hb);    if (! w)        return get_leftmost_view(key);    // Disable Cilkscreen for the duration of this call.  This will    // prevent Cilkscreen from reporting apparent races in reducers    DisableCilkscreen dguard;    if (__builtin_expect(w->g->force_reduce, 0))        __cilkrts_promote_own_deque(w);    cilkred_map* h = w->reducer_map;    if (__builtin_expect(!h, 0)) {	h = install_new_reducer_map(w);    }    if (h->merging)        __cilkrts_bug("User error: hyperobject used by another hyperobject");    elem* el = h->lookup(key);    if (! el) {        /* lookup failed; insert a new default element */        void *rep;        {            /* re-enable cilkscreen while calling the constructor */            EnableCilkscreen eguard;            if (h->is_leftmost)            {                // This special case is called only if the reducer was not                // registered using __cilkrts_hyper_create, e.g., if this is a                // C reducer in global scope or if there is no bound worker.                rep = get_leftmost_view(key);            }            else            {                rep = hb->__c_monoid.allocate_fn((void*)hb,						 hb->__view_size);                // TBD: Handle exception on identity function                hb->__c_monoid.identity_fn((void*)hb, rep);            }        }#if REDPAR_DEBUG >= 3	fprintf(stderr, "W=%d, h=%p, inserting key %p, val%p/n",		w->self,		h,		&(hb->__c_monoid),		rep);	CILK_ASSERT(w->reducer_map == h);#endif        el = h->rehash_and_insert(w, key, hb, rep);    }    return el->val;}
开发者ID:iu-parfunc,项目名称:cilk_releases,代码行数:59,


示例18: replay_advance_from_sync_internal

/** * Advance to the next log entry from a SYNC record.  Consume the current * SYNC record on this worker and advance to the next one. * * @note It's assumed that replay_advance_from_sync() has already returned if * we're not replaying a log, or if record/replay functionality has been * compiled out. * * @param w The worker whose replay log we're advancing. */void replay_advance_from_sync_internal (__cilkrts_worker *w){    // The current replay entry must be a SYNC    CILK_ASSERT(ped_type_sync == w->l->replay_list_entry->m_type);    // Advance to the next entry    w->l->replay_list_entry = w->l->replay_list_entry->next_entry();}
开发者ID:kraj,项目名称:gcc,代码行数:18,


示例19: deque_add_bottom

static void deque_add_bottom(CilkWorkerState *const ws, Closure *cl, int pn){     deque_assert_ownership(ws, pn);     CILK_ASSERT(ws, cl->owner_ready_deque == NOBODY);     cl->prev_ready = USE_PARAMETER(deques)[pn].bottom;     cl->next_ready = (Closure *)NULL;     USE_PARAMETER(deques)[pn].bottom = cl;     WHEN_CILK_DEBUG(cl->owner_ready_deque = pn);          if (USE_PARAMETER(deques)[pn].top) {	  CILK_ASSERT(ws, cl->prev_ready);	  (cl->prev_ready)->next_ready = cl;     } else {	  USE_PARAMETER(deques)[pn].top = cl;     }}
开发者ID:106ohm,项目名称:eigengraph,代码行数:17,


示例20: __cilkrts_note_interval

void __cilkrts_note_interval(__cilkrts_worker *w, enum interval i){    if (w) {        statistics *s = w->l->stats;        CILK_ASSERT(s->start[i] == INVALID_START);        s->count[i]++;    }}
开发者ID:PrasadG193,项目名称:gcc_gimple_fe,代码行数:8,


示例21: Closure_destroy

static inline void Closure_destroy(CilkWorkerState *const ws, Closure *t){     Closure_checkmagic(ws, t);     WHEN_CILK_DEBUG(t->magic = ~CILK_CLOSURE_MAGIC);     CILK_ASSERT(ws, ! (t->malloced));     Closure_clean(ws->context, t);     Cilk_internal_free(ws, t, sizeof(Closure));}
开发者ID:106ohm,项目名称:eigengraph,代码行数:9,


示例22: __cilkrts_stop_interval

void __cilkrts_stop_interval(__cilkrts_worker *w, enum interval i){    if (w) {        statistics *s = w->l->stats;        CILK_ASSERT(s->start[i] != INVALID_START);        s->accum[i] += __cilkrts_getticks() - s->start[i];        s->start[i] = INVALID_START;    }}
开发者ID:PrasadG193,项目名称:gcc_gimple_fe,代码行数:9,


示例23: load_pedigree_leaf_into_user_worker

void load_pedigree_leaf_into_user_worker(__cilkrts_worker *w){    __cilkrts_pedigree *pedigree_leaf;    CILK_ASSERT(w->l->type == WORKER_USER);    pedigree_leaf = __cilkrts_get_tls_pedigree_leaf(1);    w->pedigree = *pedigree_leaf;    // Save a pointer to the old leaf.    // We'll need to restore it later.    CILK_ASSERT(w->l->original_pedigree_leaf == NULL);    w->l->original_pedigree_leaf = pedigree_leaf;        __cilkrts_set_tls_pedigree_leaf(&w->pedigree);        // Check that this new pedigree root has at least two values.    CILK_ASSERT(w->pedigree.parent);    CILK_ASSERT(w->pedigree.parent->parent == NULL);}
开发者ID:PrasadG193,项目名称:gcc_gimple_fe,代码行数:18,


示例24: global_os_mutex_unlock

void global_os_mutex_unlock(void){    // We'd better have allocated a global_os_mutex.  This means you should    // have called global_os_mutex_lock() before calling    // global_os_mutex_unlock(), but this is the only check for it.    CILK_ASSERT(NULL != global_os_mutex);    // Release the global OS mutex    __cilkrts_os_mutex_unlock(global_os_mutex);}
开发者ID:ElPetros,项目名称:cilk-runtime,代码行数:10,


示例25: global_free

static void global_free(global_state_t *g, void *mem, int bucket){    size_t size;    CILK_ASSERT(bucket < FRAME_MALLOC_NBUCKETS);    size = FRAME_MALLOC_BUCKET_TO_SIZE(bucket);    g->frame_malloc.allocated_from_global_pool -= size;    push(&g->frame_malloc.global_free_list[bucket], mem);}
开发者ID:ElPetros,项目名称:cilk-runtime,代码行数:10,



注:本文中的CILK_ASSERT函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ CIMException函数代码示例
C++ CIFS_SB函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。