[fdo-internals] Code Submission Notification: FDO: Fix Geometry pool sharing objects between threads

Gavin Cramer gavin.cramer at autodesk.com
Wed Feb 7 01:40:48 EST 2007


The following change has been committed to the 3.2.x branch ... 
 
Summary:
FDO: Fix Geometry pool sharing objects between threads

Description:  
This changes the geometry object pool to not share ownership with
returned 
values.  Since a caller could access a geometry from a different thread,
the 
previous method was not thread-safe.  Geometry objects now use the same
method 
as pooled FdoByteArray values, which is to only be pooled when otherwise
unused.  
 
FdoByteArray values now have an extra pool.  Depending on the order of
object 
freeing in client code, some FGF-bearing values were being missed.
Values over  
8KB will still not be pooled, in order to avoid longer-than-needed
memory 
consumption from pooling large allocations (such as rasters).
 
Log:
Modified: D:\fdo8\Fdo\Unmanaged\Inc\Geometry\Fgf\Factory.h
Modified: D:\fdo8\Fdo\Unmanaged\Src\Common\ArrayHelper.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\CurvePolygon.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\CurvePolygon.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\CurveString.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\CurveString.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\GeometryFactory.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\GeometryFactory2.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\GeometryImpl.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\GeometryThreadData.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\LineString.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\LineString.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\LinearRing.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\LinearRing.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiCurvePolygon.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiCurvePolygon.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiCurveString.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiCurveString.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiGeometry.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiGeometry.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiLineString.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiLineString.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiPoint.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiPoint.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiPolygon.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\MultiPolygon.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\Point.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\Point.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\Polygon.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\Polygon.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\Pool.h  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\Util.cpp  
Modified: D:\fdo8\Fdo\Unmanaged\Src\Geometry\Fgf\Util.h  

 
Gavin Cramer
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/fdo-internals/attachments/20070207/faebf743/attachment.html


More information about the fdo-internals mailing list