Ticket #1917 (closed bug: invalid)
Parrot_api_make_interpreter() cause a crash when another interpreter already exists
Reported by: | kristaba | Owned by: | whiteknight |
---|---|---|---|
Priority: | normal | Milestone: | 3.0 |
Component: | embed/extend | Version: | master |
Severity: | high | Keywords: | interpreter api |
Cc: | Language: | ||
Patch status: | Platform: | all |
Description
When a second interpreter is created through the API, the function crash with the following backtrace :
src/thread.c:1397: failed assertion '!interpreter_array' Backtrace - Obtained 32 stack frames (max trace depth is 32). /usr/local/lib/libparrot.so(+0xc22f2) [0x2db92f2] /usr/local/lib/libparrot.so(Parrot_confess+0x9a) [0x2db92ba] /usr/local/lib/libparrot.so(+0x121a36) [0x2e18a36] /usr/local/lib/libparrot.so(+0x118b6d) [0x2e0fb6d] /usr/local/lib/libparrot.so(initialize_interpreter+0x2e7) [0x2dd7927] /usr/local/lib/libparrot.so(Parrot_api_make_interpreter+0xf6) [0x2db2176]
The only way I find to prevent this is to create a "parent" interpreter and to call Parrot_api_make_interpreter() using this parent to get a new interpreter.
Change History
Note: See
TracTickets for help on using
tickets.