›› Tag : atomic   [ Next page ]

un oggetto atomico è pericoloso in qualsiasi contesto in cui un oggetto normale è sicuro?

la mia domanda è semplice: esiste un algoritmo parallelo in cui l'uso di un oggetto di tipo banale T è legale e sicuro (ben definito, garantito per funzionare) e l'uso di un oggetto std::atomic>T porta ad un comportamento non specificato o indefinito? in altre parole, è possibile che un tipo non atomico fornisca garan

  Read more »

perché l'algoritmo di compra-e-swap (CAS) è una buona scelta per la sincronizzazione senza blocco?

CAS appartiene alla famiglia read-modify-write (RMW), un insieme di algoritmi che permettono di eseguire transazioni complesse atomicamente. nello specifico, Wikipedia dice che CAS is used to implement synchronization primitives like semaphores and mutexes, as well as more sophisticated lock-free and wait-free algorith

  Read more »

c'è un modo per ripristinare contatore incrementato utilizzando atomic.AddUint64?

sto implementando contatori globali per un'applicazione go concorrente. il mio caso d'uso è che il contatore dovrebbe essere resettato dopo x secondi e scritto a DB. ho provato ad usare mutex (sono in grado di resettare il contatore utilizzando questo) anche quando incremento il contatore registro qualcosa. ho scoperto

  Read more »

Atomic write and tell per i file in modalità O_APPEND su linux

ho a che fare con una situazione in cui voglio salvare costantemente stato per un'applicazione che ha molti processi e molti thread all'interno di questi processi. normalmente questo richiederebbe un uso pesante di bloccaggio per garantire che non ci siano conflitti. vorrei evitare questo salvando i dati in un file co

  Read more »

qual è la differenza tra atomic_load () e assegnazione?

sto lavorando ad un progetto che si occupa di molte operazioni atomiche. fino ad ora non sapevo di atomic_load() e si basava solo su assegnamento operatore per ottenere il valore di un tipo atomico e non ho visto un errore tranne di tanto di test. questi tipi atomici sono cambiati da più processi e thread pure da atomi

  Read more »

utilizzando std:: atomica come <t*>una recinzione</t*>

ho scritto una classe di risorse qui sotto per un gestore di risorse async. durante il carico, viene creato un oggetto Risorse con la risorsa predefinita (ad esempio una texture nera) in modo che il thread principale che utilizzerà la risorsa non deve aspettare, anche se si tratta di una risorsa vuota. non appena il c

  Read more »

e 'possibile evitare che Python finisca fino alla fine del blocco?

fondamentalmente, sono curioso se è possibile eseguire un blocco di codice python "atomicamente" senza essere interrotto da un segnale. per esempio, voglio eseguire operazioni in un ciclo, diciamo: for i in range(100):do_stuff(1)do_stuff(2)do_stuff(3) ma voglio finire tutti e tre do_stuff(1), do_stuff(2), do_stuff(3) s

  Read more »

Vavr Campo impostato dovrebbe essere volatile, atomico o dichiarato in altro modo?

in vavr avete il io.vavr.collection.Set che è immutabile. qual è un modo corretto e idiomatico di utilizzare che considerando che il addName() e names() potrebbe essere chiamato da vari thread? import io.vavr.collection.Set; import io.vavr.collection.HashSet; public class Names{public/*private*/ /**volatile*/ Set>Stri

  Read more »

perché GCC inserisce mrecinto dove Clang non lo usa?

perché GCC e Clang generano asm così diversi per questo codice (x86 _ 64, -O3 -std = c + + 17)? #include >atomic int global_var = 0;int foo_seq_cst(int a) {std::atomic>int ia;ia.store(global_var + a, std::memory_order_seq_cst);return ia.load(std::memory_order_seq_cst); }int foo_relaxed(int a) {std::atomic>int ia;ia.

  Read more »

cosa succede esattamente quando compilo instruction__ atomic_add_fetch

ho una istruzione nel mio codice che chiama funzione _ _ atomic _ add _ fetch. quando compilo questo codice, ricevo errori di compilazione come sotto error: undefined reference to '__atomic_fetch_add_8' non riuscivo davvero a capire perché stia lanciando un riferimento indefinito a _ _ atomic _ fetch _ add _ 8 quando

  Read more »