[Vm-dev] Pinning Objects in Pharo

Torsten Bergmann astares at gmx.de
Tue Aug 29 07:59:14 UTC 2017


Hi Eliot,

this test is part of UnifiedFFI (which is Pharo only so far) - not FFI. This was just 
a side note.

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