chrome has a partial implementation of an AMD loader here:
https://code.google.com/p/chromium/codesearch#chromium/src/gin/modules/module_registry.h
that uses a single Isolate. Note that it doesn't support require() yet

best
-jochen


On Fri, Jun 13, 2014 at 6:54 AM, juu <[email protected]> wrote:

> Ok, thanks for this clear response.
>
> I will try another way then.
>
>
>
> On Friday, June 13, 2014 3:47:55 PM UTC+2, Jakob Kummerow wrote:
>
>> V8 doesn't support what you're trying to do. Even if there were a
>> preemption mechanism, you couldn't use it for this (unlike you really like
>> crashes).
>>
>> You'll have to find a way to execute "asynchronous" stuff using only a
>> single thread. Most likely you'll need some sort of event loop. The module
>> will have to be loaded, evaluated, and the callback fired either before or
>> after the potentially long-running code block, but *not* in parallel in the
>> background.
>>
>>
>> On Fri, Jun 13, 2014 at 3:05 PM, juu <[email protected]> wrote:
>>
>>> Hello Sven,
>>>
>>> I'm trying to implement Asynchronous Module Definition (
>>> http://requirejs.org/ ) in my JavaScript IDE based on v8.
>>>
>>> require( "../dir/myScript", function(myScriptResult){
>>>     //Callback function doing something with myScriptResult
>>> });
>>>
>>> //Long running JavaScript code
>>> //...
>>>
>>> require("scriptPath",callback) is here a bound cpp function that will
>>> create a thread whose job is to load the specified script, evaluate it, and
>>> return his result as a parameter of the specified callback.
>>> Asynchronously... My problem is in the "evaluation" part of this script. I
>>> use only one isolate, which is already locked. So I need a way to unlock it
>>> and give a chance to my other thread to do some work. The preemption
>>> allowed me to that, using a context switcher thread.
>>>
>>> I know JavaScript is not supposed to be multithreaded, but I don't see
>>> any other way supporting this feature. Is there other reasons than
>>> "Chromium and Node don't use preemption" that led to remove it ?
>>>
>>>
>>> On Friday, June 13, 2014 2:26:19 PM UTC+2, Sven Panne wrote:
>>>
>>>> On Fri, Jun 13, 2014 at 2:15 PM, juu <[email protected]> wrote:
>>>>
>>>>> But if I use multiples isolates, I won't be able to share objects
>>>>> across Isolates' contexts ? No ?
>>>>>
>>>>
>>>> Nope, hence the term "Isolate"... ;-)
>>>>
>>>>
>>>>> In my case, (AMD Require implementation) the result of my second
>>>>> thread execution is supposed to be used in my main thread.
>>>>>
>>>>
>>>> I don't fully understand what you're trying to do in detail, but
>>>> preempting/interrupting the execution of an Isolate, trying to do something
>>>> else with that Isolate, and later resuming the previous execution
>>>> definitely won't work (and never did IIRC). You can e.g. interleave the
>>>> execution of different Isolates in a single thread, or migrate one Isolate
>>>> to another thread, or have multiple Isolates running at the same time in
>>>> separate threads, though.
>>>>
>>>>   --
>>> --
>>> v8-users mailing list
>>> [email protected]
>>>
>>> http://groups.google.com/group/v8-users
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "v8-users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
> --
> v8-users mailing list
> [email protected]
> http://groups.google.com/group/v8-users
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to