Trap Mach#-60
svc · mach trap -60
swtch
Cession coopérative héritée indiquant à l'ordonnanceur d'élire un autre thread prêt.
Prototype
kern_return_t swtch(/* 0 args */);Retour: kern_return_t
Historique des versions
| XNU tag | macOS | # |
|---|---|---|
| xnu-123.5 | macOS 10.0 Cheetah | -59 |
| xnu-201 | macOS 10.1 Puma | -59 |
| xnu-344 | macOS 10.2 Jaguar | -59 |
| xnu-517 | macOS 10.3 Panther | -59 |
| xnu-792 | macOS 10.4 Tiger | -60 |
| xnu-1228 | macOS 10.5 Leopard | -60 |
| xnu-1456.1.26 | macOS 10.6 Snow Leopard | -60 |
| xnu-1699.24.8 | macOS 10.7 Lion | -60 |
| xnu-2050.18.24 | macOS 10.8 Mountain Lion | -60 |
| xnu-2422.115.4 | macOS 10.9 Mavericks | -60 |
| xnu-2782.40.9 | macOS 10.10 Yosemite | -60 |
| xnu-3247.1.106 | macOS 10.11 El Capitan | -60 |
| xnu-3789.1.32 | macOS 10.12 Sierra | -60 |
| xnu-4570.1.46 | macOS 10.13 High Sierra | -60 |
| xnu-4903.221.2 | macOS 10.14 Mojave | -60 |
| xnu-6153.11.26 | macOS 10.15 Catalina | -60 |
| xnu-7195.50.7.100.1 | macOS 11.0 Big Sur | -60 |
| xnu-8019.41.5 | macOS 12.0 Monterey | -60 |
| xnu-8792.41.9 | macOS 13.0 Ventura | -60 |
| xnu-10002.1.13 | macOS 14.0 Sonoma | -60 |
| xnu-11215.1.10 | macOS 15.0 Sequoia | -60 |
| xnu-11417.101.15 | macOS 15.4 Sequoia | -60 |
| xnu-12377.1.9 | macOS 26.0 Tahoe | -60 |
| xnu-10002.41.9 | — | -60 |
| xnu-10002.61.3 | — | -60 |
| xnu-10002.81.5 | — | -60 |
| xnu-10063.101.15 | — | -60 |
| xnu-10063.121.3 | — | -60 |
| xnu-10063.141.1 | — | -60 |
| xnu-11215.41.3 | — | -60 |
| xnu-11215.61.5 | — | -60 |
| xnu-11215.81.4 | — | -60 |
| xnu-11417.121.6 | — | -60 |
| xnu-11417.140.69 | — | -60 |
| xnu-1228.0.2 | — | -60 |
| xnu-1228.12.14 | — | -60 |
| xnu-1228.15.4 | — | -60 |
| xnu-1228.3.13 | — | -60 |
| xnu-1228.5.18 | — | -60 |
| xnu-1228.5.20 | — | -60 |
| xnu-1228.7.58 | — | -60 |
| xnu-1228.9.59 | — | -60 |
| xnu-12377.101.15 | — | -60 |
| xnu-12377.41.6 | — | -60 |
| xnu-12377.61.12 | — | -60 |
| xnu-12377.81.4 | — | -60 |
| xnu-124.1 | — | -59 |
| xnu-124.13 | — | -59 |
| xnu-124.7 | — | -59 |
| xnu-1486.2.11 | — | -60 |
| xnu-1504.15.3 | — | -60 |
| xnu-1504.3.12 | — | -60 |
| xnu-1504.7.4 | — | -60 |
| xnu-1504.9.17 | — | -60 |
| xnu-1504.9.26 | — | -60 |
| xnu-1504.9.37 | — | -60 |
| xnu-1699.22.73 | — | -60 |
| xnu-1699.22.81 | — | -60 |
| xnu-1699.24.23 | — | -60 |
| xnu-1699.26.8 | — | -60 |
| xnu-1699.32.7 | — | -60 |
| xnu-201.14 | — | -59 |
| xnu-201.19 | — | -59 |
| xnu-201.19.3 | — | -59 |
| xnu-201.42.3 | — | -59 |
| xnu-201.5 | — | -59 |
| xnu-2050.22.13 | — | -60 |
| xnu-2050.24.15 | — | -60 |
| xnu-2050.48.11 | — | -60 |
| xnu-2050.7.9 | — | -60 |
| xnu-2050.9.2 | — | -60 |
| xnu-2422.1.72 | — | -60 |
| xnu-2422.100.13 | — | -60 |
| xnu-2422.110.17 | — | -60 |
| xnu-2422.90.20 | — | -60 |
| xnu-2782.1.97 | — | -60 |
| xnu-2782.10.72 | — | -60 |
| xnu-2782.20.48 | — | -60 |
| xnu-2782.30.5 | — | -60 |
| xnu-3247.10.11 | — | -60 |
| xnu-3248.20.55 | — | -60 |
| xnu-3248.30.4 | — | -60 |
| xnu-3248.40.184 | — | -60 |
| xnu-3248.50.21 | — | -60 |
| xnu-3248.60.10 | — | -60 |
| xnu-344.12.2 | — | -59 |
| xnu-344.2 | — | -59 |
| xnu-344.21.73 | — | -59 |
| xnu-344.21.74 | — | -59 |
| xnu-344.23 | — | -59 |
| xnu-344.26 | — | -59 |
| xnu-344.32 | — | -59 |
| xnu-344.34 | — | -59 |
| xnu-344.49 | — | -59 |
| xnu-3789.21.4 | — | -60 |
| xnu-3789.31.2 | — | -60 |
| xnu-3789.41.3 | — | -60 |
| xnu-3789.51.2 | — | -60 |
| xnu-3789.60.24 | — | -60 |
| xnu-3789.70.16 | — | -60 |
| xnu-4570.20.62 | — | -60 |
| xnu-4570.31.3 | — | -60 |
| xnu-4570.41.2 | — | -60 |
| xnu-4570.51.1 | — | -60 |
| xnu-4570.61.1 | — | -60 |
| xnu-4570.71.2 | — | -60 |
| xnu-4903.231.4 | — | -60 |
| xnu-4903.241.1 | — | -60 |
| xnu-4903.270.47 | — | -60 |
| xnu-517.11.1 | — | -59 |
| xnu-517.12.7 | — | -59 |
| xnu-517.3.15 | — | -59 |
| xnu-517.3.7 | — | -59 |
| xnu-517.7.21 | — | -59 |
| xnu-517.7.7 | — | -59 |
| xnu-517.9.4 | — | -59 |
| xnu-517.9.5 | — | -59 |
| xnu-6153.101.6 | — | -60 |
| xnu-6153.121.1 | — | -60 |
| xnu-6153.141.1 | — | -60 |
| xnu-6153.41.3 | — | -60 |
| xnu-6153.61.1 | — | -60 |
| xnu-6153.81.5 | — | -60 |
| xnu-7195.101.1 | — | -60 |
| xnu-7195.121.3 | — | -60 |
| xnu-7195.141.2 | — | -60 |
| xnu-7195.60.75 | — | -60 |
| xnu-7195.81.3 | — | -60 |
| xnu-792.1.5 | — | -60 |
| xnu-792.10.96 | — | -60 |
| xnu-792.12.6 | — | -60 |
| xnu-792.13.8 | — | -60 |
| xnu-792.17.14 | — | -60 |
| xnu-792.18.15 | — | -60 |
| xnu-792.2.4 | — | -60 |
| xnu-792.21.3 | — | -60 |
| xnu-792.22.5 | — | -60 |
| xnu-792.24.17 | — | -60 |
| xnu-792.25.20 | — | -60 |
| xnu-792.6.22 | — | -60 |
| xnu-792.6.56 | — | -60 |
| xnu-792.6.61 | — | -60 |
| xnu-792.6.70 | — | -60 |
| xnu-792.6.76 | — | -60 |
| xnu-8019.61.5 | — | -60 |
| xnu-8019.80.24 | — | -60 |
| xnu-8020.101.4 | — | -60 |
| xnu-8020.121.3 | — | -60 |
| xnu-8020.140.41 | — | -60 |
| xnu-8792.61.2 | — | -60 |
| xnu-8792.81.2 | — | -60 |
| xnu-8796.101.5 | — | -60 |
| xnu-8796.121.2 | — | -60 |
| xnu-8796.141.3 | — | -60 |
Notes
swtch est un piège Mach historique utilisé par les implémentations de spinlocks en espace utilisateur pour relâcher le CPU lorsqu'un verrou est contesté. Il renvoie un booléen indiquant si un autre thread a effectivement été élu. Sur macOS moderne, préférez os_unfair_lock, les primitives dispatch ou thread_switch avec un port cible ; swtch brut est rarement utile et le noyau peut le traiter comme un simple indice.
Détection
Le provider mach_trap de DTrace se déclenche à l'entrée et au retour (mach_trap:::entry avec probefunc == "swtch"). Il n'apparaît pas dans Endpoint Security.
API associées
swtch_prithread_switchsched_yieldos_unfair_lock_lock