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
> <[email protected]> wrote:
>
> <mime-attachment>