context: allow attached external functions to access JS environment
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 30/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- javascript, ruby
- Domaine
- backend, embedded-iot
Piste de recherche
The report names MiniRacer::Context#attach and Context#eval and shows a recursive locking error when the attached Ruby function evaluates JavaScript. Start by reading their implementation and the locking behavior around Context#call; determine whether the mutex can safely be released during the callback. Done means the attached function can access the JavaScript environment without deadlocking, with a regression test for the shown example.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
When attaching a Ruby function, it is not possible for that function to evaluate any JavaScript: there is a recursive locking error.
It would be nice if the attached function could access the JavaScript environment. Perhaps, the mutex could be released when calling the attached external function?
This does not work:
context = MiniRacer::Context.new
context.attach("f", ->(*args) { context.eval("1") })
context.call("f")
# => deadlock; recursive locking (ThreadError)
Environment:
- ruby:
3.0.2 - mini_racer:
0.5.0
- Langage dominant
- JavaScript
- Étoiles
- 628
- Forks
- 100
- Merge moyen
- 1 j 20 h
- PR mergées (30 j)
- 2
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de rubyjs/mini_racer
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
rubyjs/mini_racer#449 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
rubyjs/mini_racer#450 ·
-
Snapshot.load accepts a blob from another V8 version, and Context.new then kills the processOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
rubyjs/mini_racer#448 ·
-
bug/crash platform: linux/x86
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
rubyjs/mini_racer#422 · 10 commentaires ·
-
platform: darwin/x86
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
rubyjs/mini_racer#388 · 4 commentaires ·
Toutes les issues de rubyjs/mini_racer
Issues similaires
-
type/bug
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 66/100
Les mainteneurs répondent en général sous 1 jour
-
Update to mocha 12.xOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
rescript-lang/rescript#8996 ·
Les mainteneurs répondent en général sous 1 jour
-
Add: Ministerstvoidey.ruOuvertecheck:passed logos:add
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100