boostorg / boostorg/interprocess
Interprocess anonymous mutex hangs with Apple Silicon
- Lingua principale
- C++
- Stelle
- 185
- Fork
- 131
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Hi, boost interprocess anonymous mutex seems not to be handling well in ARM64 of Apple Silicon.
```C++
#include
#include
#include
using namespace boost::interprocess;
int main() {
try{
managed_shared_memory managed_shm{open_or_create, "shm", 1024};
interprocess_mutex *mtx =
managed_shm.find_or_construct("mtx")();
mtx->lock();
std::cout << "Critial section" << std::endl;
mtx->unlock();
} catch (const boost::interprocess::interprocess_exception &e) {
std::cerr << "Interprocess exception thrown: " << e.what() << std::endl;
_exit(1);
}
}
```
**Compilation steps followed**
```bash
clang++ -std=c++17 -arch arm64 boost_interprocess.cpp -I -o boost_interprocess_arm64 # For arm64 only build
clang++ -std=c++17 -arch x86_64 boost_interprocess.cpp -I -o boost_interprocess_x64 # For x64 only build
```
**Expected Behavior**
Both the instantiations should work and print *Critical Section*.
**What was observed**
When arm64 build is executed first, it works fine, but when x64 build is executed, the subsequent arm64 execution hangs.
**Steps to reproduce**
* `rm /tmp/boost_interprocess/shm`
* `./boost_interprocess_x64`
* `./boost_interprocess_arm64`
**Environment tested on**
* MacBook Air (M1, 2020)
* MacOS Monterey 12.3.1
* Apple clang version 13.1.6 (clang-1316.0.21.2.5)
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia con il riproduttore minimo in boost_interprocess.cpp ed esegui i comandi di pulizia e arm64/x86_64 elencati nell’ambiente M1. Ispeziona i percorsi di managed_shared_memory e interprocess_mutex coinvolti nello stato del mutex condiviso dipendente dall’architettura; il lavoro è completato quando entrambi gli ordini di esecuzione stampano "Critical section" senza bloccarsi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- operating-systems
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 42/100