• Satya B's avatar
    Applying InnoDB Plugin 1.0.5 snapshot , part 8 · 2dcca64b
    Satya B authored
    Note : r5865 is skipped
           r5869 plug.in related changes are aslo skipped
    
    Detailed revision comments:
    
    r5865 | vasil | 2009-09-12 02:26:03 -0500 (Sat, 12 Sep 2009) | 10 lines
    branches/zip:
    
    Simplify the compile time checks by splittig them into 5 independent checks:
    
    * Whether GCC atomics are available
    * Whether pthread_t can be used by GCC atomics
    * Whether Solaris libc atomics are available
    * Whether pthread_t can be used by Solaris libs atomics
    * Checking the size of pthread_t
    
    r5866 | vasil | 2009-09-12 02:30:08 -0500 (Sat, 12 Sep 2009) | 5 lines
    branches/zip:
    
    Add the check for GCC atomics to ut0auxconf* (copied from plug.in) because
    we no longer rely on MySQL's HAVE_GCC_ATOMIC_BUILTINS.
    
    r5867 | vasil | 2009-09-12 02:43:45 -0500 (Sat, 12 Sep 2009) | 4 lines
    branches/zip:
    
    Update comment to reflect reality.
    
    r5868 | vasil | 2009-09-12 03:01:17 -0500 (Sat, 12 Sep 2009) | 6 lines
    branches/zip:
    
    Move the check whether to include ut0auxconf.h before everything because
    we are now even checking for GCC atomics, we relied on MySQL to define
    this macro before.
    
    r5869 | vasil | 2009-09-12 03:33:11 -0500 (Sat, 12 Sep 2009) | 15 lines
    branches/zip:
    
    Include ut0auxconf.h only if none of the macros it would define is defined.
    The check when to include this header was outdated from the time when there
    was only one macro involved.
    
    Move the atomics checks that are in univ.i outside of
    #if windows ... #else ... #endif
    This simplifies the code and removes some duplicates like defining
    HAVE_ATOMIC_BUILTINS if HAVE_WINDOWS_ATOMICS is defined in both branches.
    
    Do not define the same macro HAVE_ATOMIC_PTHREAD_T for different events.
    Instead define HAVE_IB_ATOMIC_PTHREAD_T_GCC and
    HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS.
    
    r5870 | vasil | 2009-09-12 04:13:44 -0500 (Sat, 12 Sep 2009) | 7 lines
    branches/zip:
    
    Define HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS in os0sync.h
    instead of in univ.i. The code expects os_*() macros to be present if
    HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS are defined. So define
    them next to defining the os_*() macros.
    
    r5871 | vasil | 2009-09-12 04:25:44 -0500 (Sat, 12 Sep 2009) | 6 lines
    branches/zip:
    
    Rename HAVE_SOLARIS_ATOMICS to HAVE_IB_SOLARIS_ATOMICS and 
    IB_HAVE_PAUSE_INSTRUCTION to HAVE_IB_PAUSE_INSTRUCTION so they
    all follow the same HAVE_IB_* convention.
    
    r5872 | vasil | 2009-09-12 04:35:17 -0500 (Sat, 12 Sep 2009) | 5 lines
    branches/zip:
    
    Explicitly include os0sync.h to the places where HAVE_ATOMIC_BUILTINS and
    INNODB_RW_LOCKS_USE_ATOMICS are used to avoid potential problems.
    
    2dcca64b
sync0rw.c 29.4 KB