2014-04-23 4 views
5

Edit: Diese Frage ist strittig. Ich habe das Datum beim Commit falsch gelesen, es ist in vorhandenen Versionen der Go-Tools enthalten. Danke, James!Threaded CGO mit Go 1.2

Es scheint, dass die bevorstehende Version von Go (1.3) non-Go threads to call CGO callbacks erlauben wird.

Ich frage mich, was Menschen in der Regel getan haben, um diese Einschränkung bis heute zu umgehen.

Das heißt, ich habe eine Drittanbieter-Bibliothek, die Threads eigenständig erstellt, und ich möchte einige Informationen aus diesen Threads in den Go-Code erhalten.

Eine Art von Handoff-Mechanismus von einem C-Thread zu einem Go-Thread auf der "C" -Seite des Codes? Eine Möglichkeit, eine Nachricht in eine Warteschlange zu bekommen, ohne Go aufzurufen? Andere Ideen?

+0

Sind Sie sicher, dass diese Änderungen für Go 1.3 neu sind? Der Patch stammt aus Februar 2013 und scheint in Go 1.1 enthalten zu sein. –

Antwort

0

Das Commit, das Sie hervorgehoben haben, war vom Februar letzten Jahres, also vor der Veröffentlichung von Go 1.1. Es verweist auch auf issue 4435, die markiert ist Go1.1.

Ich bin mir nicht sicher, was die Leute getan haben, um die Einschränkung zuvor zu umgehen (wenn es tatsächlich möglich war), aber für die letzten beiden freigegebenen Versionen der Sprache gab es keine Notwendigkeit, Workarounds zu verwenden. Ich habe die Fähigkeit in einigen meiner Projekte ohne Zwischenfall genutzt.

+0

Sie haben Recht! Ich habe das Datum des Commits falsch gelesen. Ich dachte, es war Februar dieses Jahres. Nun, das ist großartig! – laslowh