[Vm-dev] Pinning Objects in Pharo

Eliot Miranda eliot.miranda at gmail.com
Mon Aug 28 20:08:09 UTC 2017


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