ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev.c
(Generate patch)

Comparing libev/ev.c (file contents):
Revision 1.384 by root, Wed Jul 20 00:58:45 2011 UTC vs.
Revision 1.385 by root, Wed Jul 20 01:04:03 2011 UTC

511#ifndef ECB_MEMORY_FENCE 511#ifndef ECB_MEMORY_FENCE
512 #if ECB_GCC_VERSION(4,4) 512 #if ECB_GCC_VERSION(4,4)
513 #define ECB_MEMORY_FENCE __sync_synchronize () 513 #define ECB_MEMORY_FENCE __sync_synchronize ()
514 #define ECB_MEMORY_FENCE_ACQUIRE ({ char dummy = 0; __sync_lock_test_and_set (&dummy, 1); }) 514 #define ECB_MEMORY_FENCE_ACQUIRE ({ char dummy = 0; __sync_lock_test_and_set (&dummy, 1); })
515 #define ECB_MEMORY_FENCE_RELEASE ({ char dummy = 1; __sync_lock_release (&dummy ); }) 515 #define ECB_MEMORY_FENCE_RELEASE ({ char dummy = 1; __sync_lock_release (&dummy ); })
516 #elif _MSC_VER >= 1400
517 #define ECB_MEMORY_FENCE do { } while (0)
518 #define ECB_MEMORY_FENCE_ACQUIRE ECB_MEMORY_FENCE
519 #define ECB_MEMORY_FENCE_RELEASE ECB_MEMORY_FENCE
520 #elif defined(_WIN32) && defined(MemoryBarrier) 516 #elif defined(_WIN32) && defined(MemoryBarrier)
521 #define ECB_MEMORY_FENCE MemoryBarrier () 517 #define ECB_MEMORY_FENCE MemoryBarrier ()
522 #define ECB_MEMORY_FENCE_ACQUIRE ECB_MEMORY_FENCE 518 #define ECB_MEMORY_FENCE_ACQUIRE ECB_MEMORY_FENCE
523 #define ECB_MEMORY_FENCE_RELEASE ECB_MEMORY_FENCE 519 #define ECB_MEMORY_FENCE_RELEASE ECB_MEMORY_FENCE
524 #endif 520 #endif
1460 1456
1461inline_speed void 1457inline_speed void
1462evpipe_write (EV_P_ EV_ATOMIC_T *flag) 1458evpipe_write (EV_P_ EV_ATOMIC_T *flag)
1463{ 1459{
1464 if (expect_true (*flag)) 1460 if (expect_true (*flag))
1465 return; 1461 /*return*//*D*/;
1466 1462
1467 *flag = 1; 1463 *flag = 1;
1468 1464
1469 ECB_MEMORY_FENCE_RELEASE; /* make sure flag is visible before the wakeup */ 1465 ECB_MEMORY_FENCE_RELEASE; /* make sure flag is visible before the wakeup */
1470 1466

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines