Show
Ignore:
Timestamp:
07/04/08 02:15:06 (5 months ago)
Author:
ruoso
Message:

[smop] yet more work on the p6opaque implementation... Some nasty bug is causing a deadlock (yes... I know the reasons for locks to exist is to cause dead-locks, but that is what I got so far)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • v6/smop/src/smop_s1p_scalar.c

    r20111 r21202  
    2929 
    3030SMOP__Object* SMOP__S1P__Scalar_STORE(SMOP__Object* object, SMOP__Object* val) { 
    31   smop_lowlevel_rdlock(object); 
     31  smop_lowlevel_wrlock(object); 
    3232  SMOP__Object* old = ((SMOP__S1P__Scalar_struct*)object)->cell; 
    3333  ((SMOP__S1P__Scalar_struct*)object)->cell = val; 
     
    5454    SMOP_RELEASE(interpreter,scalar); 
    5555    SMOP_RELEASE(interpreter,capture); 
     56 
    5657  } else if (SMOP__ID__DESTROYALL == identifier) { 
    5758    SMOP__S1P__Scalar_struct* s = (SMOP__S1P__Scalar_struct*)capture; 
     
    6263 
    6364    SMOP_RELEASE(interpreter,cell); 
     65 
    6466  } else { 
    6567    fprintf(stderr,"Unknown identifier in lowlevel method object invocation.\n"); 
    6668    SMOP_RELEASE(interpreter,capture); 
     69     
    6770  } 
    6871  return SMOP__NATIVE__bool_false;