equal
deleted
inserted
replaced
284 char flags = 0; |
284 char flags = 0; |
285 void *visible_value_p = UnpackVar(dsc, &real_value_p, &flags); |
285 void *visible_value_p = UnpackVar(dsc, &real_value_p, &flags); |
286 void *dst_p = &rbuf[dsc->buf_index]; |
286 void *dst_p = &rbuf[dsc->buf_index]; |
287 uint32_t sz = __get_type_enum_size(dsc->type); |
287 uint32_t sz = __get_type_enum_size(dsc->type); |
288 |
288 |
289 if((valptr + sz) < end) |
289 if((valptr + sz) <= end) |
290 { |
290 { |
291 // rescheduling spinlock until free |
291 // rescheduling spinlock until free |
292 while(AtomicCompareExchange(&dsc->rlock, 0, 1)) sched_yield(); |
292 while(AtomicCompareExchange(&dsc->rlock, 0, 1)) sched_yield(); |
293 |
293 |
294 memcpy(dst_p, valptr, sz); |
294 memcpy(dst_p, valptr, sz); |