Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 45cbcaf4 in mainline


Ignore:
Timestamp:
2012-08-13T17:56:15Z (9 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master
Children:
14c5005
Parents:
3a58347
Message:

avoid deadlocks by replacing gettimeofday() with getuptime() in lib/async.c and lib/fibril_sync.c

Location:
uspace/lib/c/generic
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/async.c

    r3a58347 r45cbcaf4  
    637637       
    638638        if (usecs) {
    639                 gettimeofday(&conn->wdata.to_event.expires, NULL);
     639                getuptime(&conn->wdata.to_event.expires);
    640640                tv_add(&conn->wdata.to_event.expires, usecs);
    641641        } else
     
    966966{
    967967        struct timeval tv;
    968         gettimeofday(&tv, NULL);
     968        getuptime(&tv);
    969969       
    970970        futex_down(&async_futex);
     
    10231023                       
    10241024                        struct timeval tv;
    1025                         gettimeofday(&tv, NULL);
     1025                        getuptime(&tv);
    10261026                       
    10271027                        if (tv_gteq(&tv, &waiter->to_event.expires)) {
     
    13301330                timeout = 0;
    13311331
    1332         gettimeofday(&msg->wdata.to_event.expires, NULL);
     1332        getuptime(&msg->wdata.to_event.expires);
    13331333        tv_add(&msg->wdata.to_event.expires, timeout);
    13341334       
     
    14121412        msg->wdata.fid = fibril_get_id();
    14131413       
    1414         gettimeofday(&msg->wdata.to_event.expires, NULL);
     1414        getuptime(&msg->wdata.to_event.expires);
    14151415        tv_add(&msg->wdata.to_event.expires, timeout);
    14161416       
  • uspace/lib/c/generic/fibril_synch.c

    r3a58347 r45cbcaf4  
    379379        futex_down(&async_futex);
    380380        if (timeout) {
    381                 gettimeofday(&wdata.to_event.expires, NULL);
     381                getuptime(&wdata.to_event.expires);
    382382                tv_add(&wdata.to_event.expires, timeout);
    383383                async_insert_timeout(&wdata);
Note: See TracChangeset for help on using the changeset viewer.