Skip to content
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 tagmacOS#
xnu-123.5macOS 10.0 Cheetah-59
xnu-201macOS 10.1 Puma-59
xnu-344macOS 10.2 Jaguar-59
xnu-517macOS 10.3 Panther-59
xnu-792macOS 10.4 Tiger-60
xnu-1228macOS 10.5 Leopard-60
xnu-1456.1.26macOS 10.6 Snow Leopard-60
xnu-1699.24.8macOS 10.7 Lion-60
xnu-2050.18.24macOS 10.8 Mountain Lion-60
xnu-2422.115.4macOS 10.9 Mavericks-60
xnu-2782.40.9macOS 10.10 Yosemite-60
xnu-3247.1.106macOS 10.11 El Capitan-60
xnu-3789.1.32macOS 10.12 Sierra-60
xnu-4570.1.46macOS 10.13 High Sierra-60
xnu-4903.221.2macOS 10.14 Mojave-60
xnu-6153.11.26macOS 10.15 Catalina-60
xnu-7195.50.7.100.1macOS 11.0 Big Sur-60
xnu-8019.41.5macOS 12.0 Monterey-60
xnu-8792.41.9macOS 13.0 Ventura-60
xnu-10002.1.13macOS 14.0 Sonoma-60
xnu-11215.1.10macOS 15.0 Sequoia-60
xnu-11417.101.15macOS 15.4 Sequoia-60
xnu-12377.1.9macOS 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