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>

Reply via email to