Hi Petr, along with Esteban’s request for the error code from allocateExecutablePage can you also see whether use of iceberg is successful the second time you launch Pharo? So start up your virtualbox, try and interact with iceberg, quit if it fails, relaunch and try again?
Also in your steps what do you do to prepare? eg do you boot in virtualbox, return from sleep, or...? FYI, allocateExecutablePage uses valloc (IIRC) to get a page from the OS and then uses mprotect to add executable permission to the page before answering the page’s address as the result of the primitive. The callback machinery then uses the page to provide the executable blue code used in implementing callbacks. The address of a code sequence in the page is what is actually handed out to C code as a fu croon pointer. When external code calls this function pointer the code in the sequence invokes a callback into the vm before returning back to C. Consequently it is key that allocateExecutablePage works correctly. If it doesn’t then no callbacks. _,,,^..^,,,_ (phone) > On Sep 24, 2018, at 11:11 AM, Petr Fischer via Pharo-dev > <pharo-dev@lists.pharo.org> wrote: > > <mime-attachment>