Ceci est plus de curiosité qu'autre chose (je devrais totalement abandonner cela et essayer jRuby), mais est-il possible de désactiver le verrou global d'interprète de YARV ruby et tous les autres verrous associés? Je suppose que cela annulerait votre garantie, car certaines bibliothèques de YARV Ruby ne sont pas sûres pour les threads, mais causeraient-elles d'autres problèmes?Est-il possible de désactiver le verrou global de l'interpréteur YARV?
2
A
Répondre
0
Il n'y a aucun moyen de le désactiver sauf si vous éditez réellement le code source et recompilez. Je n'ai pas regardé comment cela a été implémenté, mais je suppose qu'il est difficile de le "sortir" du code. Si vous ne voulez pas un GIL, vous pouvez essayer JRuby, et je suis sûr que Rubinius n'en a pas non plus.
0
Tenderlove a tweeted d'un patch pour désactiver le GIL:
Je voudrais voir @ pièce expérimentale de _ko1 pour enlever le GIL/cc @yukihiro_matz #rubyconf
Questions connexes
- 1. Verrou de workflow "Modifier l'élément"
- 2. Est-il possible de libérer automatiquement un verrou dans PostgreSQL?
- 3. Possible de désactiver l'élément flash?
- 4. GoogleAppEngine: possible de désactiver FileUpload?
- 5. spymemcached - est-il possible de désactiver le système de journalisation?
- 6. La position du journal maître de Mysql change pendant un verrou global?
- 7. Est-il possible de changer le volume sonore global dans le SDK de l'iPhone?
- 8. Verrouillage global Oracle sur le processus
- 9. Est-il possible de désactiver le bouton d'annulation OpenFileDialog?
- 10. Est-il possible de remplacer l'opérateur global new() partout?
- 11. Possible de désactiver jQuery pour IE6?
- 12. Différence entre verrou (verrou) et verrouillage (variable_qui_utilise_I_am_using)
- 13. condition de course dans le verrou commun sur le fichier?
- 14. remplacer le verrou d'essorage avec le signal
- 15. Gestionnaire de contrôle global
- 16. Problème de verrou de SQL Server 2008
- 17. Possible de désactiver la compilation automatique de App_Code?
- 18. Problème avec le verrou waveOutWrite et waveOutGetPosition
- 19. Comment est défini le chemin de chargement Ruby? Le "$:" global
- 20. Est-il possible de désactiver la carte de référence vocale?
- 21. Verrou de lecture/écriture évolutif Win32
- 22. Désactiver le son de Javascript?
- 23. Lecteur/graveur sans verrou
- 24. Forcer Firefox à supprimer le verrou SQLite de cookies.sqlite
- 25. Le verrou exclusif PostgreSQL arrête l'application
- 26. Quel est le problème sur ce verrou?
- 27. Est-il possible de désactiver la saisie semi-automatique?
- 28. Est-il possible de désactiver la fonctionnalité browserCaps dans ASP.NET?
- 29. UITouch - Est-il possible de désactiver plusieurs écoutes
- 30. Possible de désactiver un hook fait avec SetWindowsHookEx runtime?
J'étais sous l'impression que Rubinius a dû introduire le GIL pour que les extensions C fonctionnent toujours. Ou peut-être le GIL est seulement actif lors de l'utilisation des extensions C? Il est également possible que je sois totalement incorrect. – cam
Vous n'avez pas besoin d'un GIL pour les extensions C (je pense). Brian Ford disait à la dernière réunion de PDXruby que la façon dont ils le font est d'ajouter un petit verrou sur la modification des variables. Ainsi, si un thread modifie @a, les autres threads faisant la même chose devront attendre, tandis que les threads faisant d'autres choses continueront à fonctionner correctement. – henrikhodne