[Vm-dev] Pinning Objects in Pharo

Esteban Lorenzano estebanlm at gmail.com
Tue Aug 29 08:59:05 UTC 2017


> On 29 Aug 2017, at 09:59, Torsten Bergmann <astares at gmx.de> wrote:
> 
> Hi Eliot,
> 
> this test is part of UnifiedFFI (which is Pharo only so far) - not FFI. This was just 
> a side note.

yes, and it’s purpose is to test callbacks in the UFFI context, not callbacks itself :)

Esteban

> 
> I would rather be interested if we would like to have a common #pinDuring:
> in Squeak, Pharo, Cuis, ...
> 
> Thanks
> Torsten
> 
> 
>> Gesendet: Montag, 28. August 2017 um 22:08 Uhr
>> Von: "Eliot Miranda" <eliot.miranda at gmail.com>
>> An: "Torsten Bergmann" <astares at gmx.de>, "Esteban Lorenzano" <estebanlm at gmail.com>
>> Cc: "Pharo Development List" <pharo-dev at lists.pharo.org>, vm-dev at lists.squeakfoundation.org
>> Betreff: Re: Pinning Objects in Pharo
>> 
>> Hi Torsten, Hi Esteban,
>> 
>>> On Aug 28, 2017, at 9:17 AM, Torsten Bergmann <astares at gmx.de> wrote:
>>> 
>>> As some of you are aware of Spur added memory pinning and in Pharo 6.1 (#60510) as well as Pharo 7
>>> we currently have
>>> 
>>> Object>>pin
>>> Object>>unpin
>>> Object>>isPinned
>>> 
>>> and also Object>>setPinned:.
>>> 
>>> Object pinning is explained by Eliot here [1].
>>> 
>>> I would propose two changes (at least for Pharo but ideally also for Squeak):
>>> 
>>> 1. IMHO #setPinned: should be moved to a private protocol
>>> 2. Provide a #pinDuring: aBlock method like:
>>> 
>>>     pinDuring: aBlock 
>>>         [ self pin.
>>>           aBlock value ] ensure: [ self unpin ]
>>> 
>>>   so we can ensure that a pinned object is unpinned after an operation.
>>> 
>>> What do you think?
>>> 
>>> Also I wonder why FFICallbackTests>>#testCqsortWithByteArray is sending #pin but not 
>>> #unpin afterwards. Maybe that is the reason why there is a flag in this method that it 
>>> is crashing on Windows.
>> 
>> This test is news to me.  Neither the test nor the class is in FFI-Tests at source.squeak.org, which is where the package lives.  Why is it missing?
>> 
>>> 
>>> Bye
>>> T.
>>> 
>>> [1] http://lists.squeakfoundation.org/pipermail/squeak-dev/2017-August/195129.html
>> 



More information about the Vm-dev mailing list