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

Comparing libev/ev.c (file contents):
Revision 1.410 by root, Sat Feb 4 17:57:55 2012 UTC vs.
Revision 1.415 by root, Fri Mar 30 17:43:55 2012 UTC

567 #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("sfence") /* play safe - not needed in any current cpu */ 567 #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("sfence") /* play safe - not needed in any current cpu */
568 #elif __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__ 568 #elif __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__
569 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("sync" : : : "memory") 569 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("sync" : : : "memory")
570 #elif defined(__ARM_ARCH_6__ ) || defined(__ARM_ARCH_6J__ ) \ 570 #elif defined(__ARM_ARCH_6__ ) || defined(__ARM_ARCH_6J__ ) \
571 || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6ZK__) 571 || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6ZK__)
572 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mcr p15,0,%0,c7,c10,5" : : "r" (0) : "memory") 572 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mcr p15,0,%0,c7,c10,5" : : "r" (0) : "memory")
573 #elif defined(__ARM_ARCH_7__ ) || defined(__ARM_ARCH_7A__ ) \ 573 #elif defined(__ARM_ARCH_7__ ) || defined(__ARM_ARCH_7A__ ) \
574 || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7R__ ) 574 || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7R__ )
575 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("dmb" : : : "memory") 575 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("dmb" : : : "memory")
576 #elif __sparc || __sparc__ 576 #elif __sparc || __sparc__
577 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("membar #LoadStore | #LoadLoad | #StoreStore | #StoreLoad | " : : : "memory") 577 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("membar #LoadStore | #LoadLoad | #StoreStore | #StoreLoad | " : : : "memory")
578 #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("membar #LoadStore | #LoadLoad" : : : "memory") 578 #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("membar #LoadStore | #LoadLoad" : : : "memory")
579 #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("membar #LoadStore | #StoreStore") 579 #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("membar #LoadStore | #StoreStore")
580 #elif defined(__s390__) || defined(__s390x__) 580 #elif defined(__s390__) || defined(__s390x__)
581 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("bcr 15,0" : : : "memory") 581 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("bcr 15,0" : : : "memory")
582 #elif defined(__mips__)
583 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("sync" : : : "memory")
582 #endif 584 #endif
583 #endif 585 #endif
584#endif 586#endif
585 587
586#ifndef ECB_MEMORY_FENCE 588#ifndef ECB_MEMORY_FENCE
599 #elif __SUNPRO_C >= 0x5110 || __SUNPRO_CC >= 0x5110 601 #elif __SUNPRO_C >= 0x5110 || __SUNPRO_CC >= 0x5110
600 #include <mbarrier.h> 602 #include <mbarrier.h>
601 #define ECB_MEMORY_FENCE __machine_rw_barrier () 603 #define ECB_MEMORY_FENCE __machine_rw_barrier ()
602 #define ECB_MEMORY_FENCE_ACQUIRE __machine_r_barrier () 604 #define ECB_MEMORY_FENCE_ACQUIRE __machine_r_barrier ()
603 #define ECB_MEMORY_FENCE_RELEASE __machine_w_barrier () 605 #define ECB_MEMORY_FENCE_RELEASE __machine_w_barrier ()
606 #elif __xlC__
607 #define ECB_MEMORY_FENCE __sync ()
604 #endif 608 #endif
605#endif 609#endif
606 610
607#ifndef ECB_MEMORY_FENCE 611#ifndef ECB_MEMORY_FENCE
608 #if !ECB_AVOID_PTHREADS 612 #if !ECB_AVOID_PTHREADS
1871 /* win32 people keep sending patches that change this write() to send() */ 1875 /* win32 people keep sending patches that change this write() to send() */
1872 /* and then run away. but send() is wrong, it wants a socket handle on win32 */ 1876 /* and then run away. but send() is wrong, it wants a socket handle on win32 */
1873 /* so when you think this write should be a send instead, please find out */ 1877 /* so when you think this write should be a send instead, please find out */
1874 /* where your send() is from - it's definitely not the microsoft send, and */ 1878 /* where your send() is from - it's definitely not the microsoft send, and */
1875 /* tell me. thank you. */ 1879 /* tell me. thank you. */
1880 /* it might be that your problem is that your environment needs EV_USE_WSASOCKET */
1881 /* check the ev documentation on how to use this flag */
1876 write (evpipe [1], &(evpipe [1]), 1); 1882 write (evpipe [1], &(evpipe [1]), 1);
1877 } 1883 }
1878 1884
1879 errno = old_errno; 1885 errno = old_errno;
1880 } 1886 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines