Changeset 273


Ignore:
Timestamp:
Jun 17, 2009, 10:55:22 AM (16 years ago)
Author:
Silvan Scherrer
Message:

mutex lock fix

Location:
branches/samba-3.3.x/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified branches/samba-3.3.x/source/lib/tdb/common/open.c

    r206 r273  
    2727
    2828#include "tdb_private.h"
     29
     30#ifdef __OS2__
     31// nmbd.c sets it to 1
     32int global_Sem32Add = 0;
     33#endif
    2934
    3035/* all contexts, to ensure no double-opens (fcntl locks don't nest!) */
     
    183188                // extract path info
    184189                _splitpath( name, drive, dir, fname, ext);
    185                 sprintf( szSem, "\\SEM32\\TDB_GL_%s%s%s", dir, fname, ext);
     190                sprintf( szSem, "\\SEM32\\TDB_GL_%s%s%s%i", dir, fname, ext, global_Sem32Add);
    186191                rc = DosCreateMutexSem( szSem, &tdb->hGlobalLock, 0, FALSE);
    187192                if (rc == ERROR_DUPLICATE_NAME)
     
    193198                }
    194199                TDB_LOG((tdb, TDB_DEBUG_TRACE,"tdb_open_ex pid %d global handle %d\n", getpid(), tdb->hGlobalLock));
    195                 sprintf( szSem, "\\SEM32\\TDB_AL_%s%s%s", dir, fname, ext);
     200                sprintf( szSem, "\\SEM32\\TDB_AL_%s%s%s%i", dir, fname, ext, global_Sem32Add);
    196201                rc = DosCreateMutexSem( szSem, &tdb->hActiveLock, 0, FALSE);
    197202                if (rc == ERROR_DUPLICATE_NAME)
     
    203208                }
    204209                TDB_LOG((tdb, TDB_DEBUG_TRACE,"tdb_open_ex pid %d active handle %d\n", getpid(), tdb->hActiveLock));
    205                 sprintf( szSem, "\\SEM32\\TDB_TL_%s%s%s", dir, fname, ext);
     210                sprintf( szSem, "\\SEM32\\TDB_TL_%s%s%s%i", dir, fname, ext, global_Sem32Add);
    206211                rc = DosCreateMutexSem( szSem, &tdb->hTransactionLock, 0, FALSE);
    207212                if (rc == ERROR_DUPLICATE_NAME)
     
    508513                // extract path info
    509514                _splitpath( tdb->name, drive, dir, fname, ext);
    510                 sprintf( szSem, "\\SEM32\\TDB_GL_%s%s%s", dir, fname, ext);
     515                sprintf( szSem, "\\SEM32\\TDB_GL_%s%s%s%i", dir, fname, ext, global_Sem32Add);
    511516                rc = DosCreateMutexSem( szSem, &tdb->hGlobalLock, 0, FALSE);
    512517                if (rc == ERROR_DUPLICATE_NAME)
     
    518523                }
    519524                TDB_LOG((tdb, TDB_DEBUG_TRACE,"tdb_reopen pid %d global handle %d\n", getpid(), tdb->hGlobalLock));
    520                 sprintf( szSem, "\\SEM32\\TDB_AL_%s%s%s", dir, fname, ext);
     525                sprintf( szSem, "\\SEM32\\TDB_AL_%s%s%s%i", dir, fname, ext, global_Sem32Add);
    521526                rc = DosCreateMutexSem( szSem, &tdb->hActiveLock, 0, FALSE);
    522527                if (rc == ERROR_DUPLICATE_NAME)
     
    528533                }
    529534                TDB_LOG((tdb, TDB_DEBUG_TRACE,"tdb_reopen pid %d active handle %d\n", getpid(), tdb->hActiveLock));
    530                 sprintf( szSem, "\\SEM32\\TDB_TL_%s%s%s", dir, fname, ext);
     535                sprintf( szSem, "\\SEM32\\TDB_TL_%s%s%s%i", dir, fname, ext, global_Sem32Add);
    531536                rc = DosCreateMutexSem( szSem, &tdb->hTransactionLock, 0, FALSE);
    532537                if (rc == ERROR_DUPLICATE_NAME)
  • TabularUnified branches/samba-3.3.x/source/nmbd/nmbd.c

    r221 r273  
    2929extern bool rescan_listen_set;
    3030extern bool global_in_nmbd;
     31
     32#ifdef __OS2__
     33extern int global_Sem32Add;
     34#endif
    3135
    3236extern bool override_logfile;
     
    766770        TALLOC_CTX *frame = talloc_stackframe(); /* Setup tos. */
    767771
     772#ifdef __OS2__
     773        global_Sem32Add = 1;
     774#endif
     775
    768776        load_case_tables();
    769777
Note: See TracChangeset for help on using the changeset viewer.