Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    xD

    Capito! l'unica cosa che mi è ancora poco chiara è questa:
    Se nel processo avviato per primo definisco un mutex

    pthread_mutex_t MyMutex = PTHREAD_MUTEX_INITIALIZER;

    come faccio ad assegnargli l'ID?
    e anche se io assegno l'ID...quando il programma viene riavviato non viene ridefinito il mutex?

  2. #12
    Occhio, stai confondendo i mutex pthread con quelli Windows (che si creano con la API CreateMutex)... sono oggetti differenti.
    e anche se io assegno l'ID...quando il programma viene riavviato non viene ridefinito il mutex?
    Quando parte la prima istanza del programma il mutex viene creato, quando partono le istanze successive, la chiamata a CreateMutex restituisce un handle al mutex già esistente (l'applicazione lo può capire dal fatto che dopo la chiamata a CreateMutex, che comunque ha successo, chiamando GetLastError si ottiene ERROR_ALREADY_EXISTS); quando tutti gli handle al mutex vengono chiusi (ossia, ad esempio, quando tutti i processi terminano) il mutex viene distrutto automaticamente, per cui la successiva istanza del processo che verrà avviata con la chiamata a CreateMutex creerà un nuovo mutex invece di aprire quello vecchio.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #13
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    perfettp

    perfetto! tutto chiaro:
    all'avvio del programma ho aggiunto questo e tolto l'inutile funzone delle enum window:

    codice:
    HANDLE hMutexBox = CreateMutex(0,TRUE,_T("boc.exeK3ODJ5OS-SA4G-AFWG-LHUI-DSLE039EI40E"));
    DWORD dwMutexBoxErr = GetLastError(); 
    if (dwMutexBoxErr == ERROR_SUCCESS)
         bQuestoEIlPrimoProcessoAvviato = TRUE;
    else  bQuestoEIlPrimoProcessoAvviato = FALSE;

  4. #14
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    eehhh no. Devi pagare. un javettino
    Per gli Spartani e Sparta usa spartan Il mio github

  5. #15
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    ihiih


  6. #16
    Sarebbe meglio:
    codice:
    bool PrimoProcesso;
    HANDLE AppStartedMutex = CreateMutex(0,TRUE,_T("boc.exeK3ODJ5OS-SA4G-AFWG-LHUI-DSLE039EI40E"));
    if(AppStartedMutex!=NULL)
        PrimoProcesso=(GetLastError()==ERROR_SUCCESS);
    else
    {
        // Si è verificato un errore durante la creazione del mutex, gestiscilo
    }
    così gestisci gli eventuali errori nella creazione del mutex non passano inosservati.

    P.S.: e dimenticati della notazione ungherese per le variabili, è insopportabile.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #17
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    ok grazie

    Grazie....molto meglio così......
    a proposito....prova a dare un occhio nell'altra discussione (della progress bar verde....che ho saeguito MSDN...ma niente -.-')

    P.S. Non saprei vivere senza la notazione ungherese XD.....non posso più farne a meno

  8. #18

    Re: ok grazie

    Originariamente inviato da kirakira93
    Grazie....molto meglio così......
    a proposito....prova a dare un occhio nell'altra discussione (della progress bar verde....che ho saeguito MSDN...ma niente -.-')
    Al volo non saprei dire qual è il problema, e ora non ho tempo per fare una ricerca "seria" (sono sotto esami ), magari ci do un'occhiata approfondita domani.
    P.S. Non saprei vivere senza la notazione ungherese XD.....non posso più farne a meno
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #19
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    Grazie MItaly

    Grazie MItaly

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.