Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*
@@ -377,11 +377,11 @@
static void
evch_gevent_free(evch_gevent_t *evp)
{
int32_t refcnt;
- refcnt = (int32_t)atomic_add_32_nv(&evp->ge_refcount, -1);
+ refcnt = (int32_t)atomic_dec_32_nv(&evp->ge_refcount);
if (refcnt <= 0) {
if (evp->ge_destruct != NULL) {
evp->ge_destruct((void *)&(evp->ge_payload),
evp->ge_dstcookie);
}
@@ -645,11 +645,11 @@
if (qep == NULL) {
return (-1);
}
qep->q_objref = (void *)evp;
qep->q_objsize = size;
- atomic_add_32(&evp->ge_refcount, 1);
+ atomic_inc_32(&evp->ge_refcount);
mutex_enter(&eqp->eq_queuemx);
evch_q_in(&eqp->eq_eventq, qep);
/* Wakeup delivery thread */
cv_signal(&eqp->eq_thrsleepcv);