Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.40 KB | None | 0 0
  1. struct bsem:
  2. int futex;
  3.  
  4. void init( &bsem ):
  5. bsem.futex = 0 // niezablokowany
  6.  
  7.  
  8. wait( &bsem ):
  9. while( TRUE ):
  10. if ( compare_and_swap(bsem.futex,0,1) == 0) // jesli byl niezablokowany to zamien na 1 (zablokuj)
  11. break;
  12. futex(bsem.futex, WAIT, 1); // jeśli był 1 to śpij
  13.  
  14. signal( &bsem ):
  15. if compare_and_swap( bsem.futex, 1, 0) == 1:
  16. futex( bsem.futex, WAKE, 1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement