svghmi/svghmi.c
branchsvghmi
changeset 2802 64e6f73b9859
parent 2799 f5da343b9b63
child 2805 e521e0d133d5
equal deleted inserted replaced
2801:390acff12755 2802:64e6f73b9859
   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);