0027491: GeomAdaptor_Curve Is Not Thread-Safe (Anymore?)
authorBenjamin Bihler <benjamin.bihler@compositence.de>
Wed, 1 Jun 2016 11:24:23 +0000 (13:24 +0200)
committerbugmaster <bugmaster@opencascade.com>
Thu, 2 Jun 2016 11:23:50 +0000 (14:23 +0300)
Added hint about BSpline cache and missing thread-safety to adaptor classes.

src/Adaptor2d/Adaptor2d_Curve2d.hxx
src/Adaptor3d/Adaptor3d_Curve.hxx
src/Adaptor3d/Adaptor3d_Surface.hxx
src/Geom2dAdaptor/Geom2dAdaptor_Curve.hxx
src/GeomAdaptor/GeomAdaptor_Curve.hxx
src/GeomAdaptor/GeomAdaptor_Surface.hxx

index 5d11988..c845bce 100644 (file)
@@ -49,6 +49,10 @@ class Geom2d_BSplineCurve;
 //! the curve by algorithms, which use it.
 //! A derived concrete class is provided:
 //! Geom2dAdaptor_Curve for a curve from the Geom2d package.
+//!
+//! Polynomial coefficients of BSpline curves used for their evaluation are
+//! cached for better performance. Therefore these evaluations are not
+//! thread-safe and parallel evaluations need to be prevented.
 class Adaptor2d_Curve2d 
 {
 public:
index 8e37d2f..647cf03 100644 (file)
@@ -51,6 +51,10 @@ class Geom_BSplineCurve;
 //! - GeomAdaptor_Curve for a curve from the Geom package
 //! - Adaptor3d_CurveOnSurface for a curve lying on
 //! a surface from the Geom package.
+//!
+//! Polynomial coefficients of BSpline curves used for their evaluation are
+//! cached for better performance. Therefore these evaluations are not
+//! thread-safe and parallel evaluations need to be prevented.
 class Adaptor3d_Curve 
 {
 public:
index 844588c..1f5c306 100644 (file)
@@ -61,6 +61,10 @@ class Adaptor3d_HCurve;
 //! Warning: All the methods are virtual and implemented with a
 //! raise to allow to redefined only the methods realy
 //! used.
+//!
+//! Polynomial coefficients of BSpline surfaces used for their evaluation are
+//! cached for better performance. Therefore these evaluations are not
+//! thread-safe and parallel evaluations need to be prevented.
 class Adaptor3d_Surface 
 {
 public:
index 3c0b7d5..1bf3d2a 100644 (file)
@@ -51,6 +51,10 @@ class Geom2d_BSplineCurve;
 //! An interface between the services provided by any
 //! curve from the package Geom2d and those required
 //! of the curve by algorithms which use it.
+//!
+//! Polynomial coefficients of BSpline curves used for their evaluation are
+//! cached for better performance. Therefore these evaluations are not
+//! thread-safe and parallel evaluations need to be prevented.
 class Geom2dAdaptor_Curve  : public Adaptor2d_Curve2d
 {
 public:
index 7cf42e6..62f981a 100644 (file)
@@ -52,6 +52,10 @@ class Geom_BSplineCurve;
 //! This class provides an interface between the services provided by any
 //! curve from the package Geom and those required of the curve by algorithms which use it.
 //! Creation of the loaded curve the curve is C1 by piece.
+//!
+//! Polynomial coefficients of BSpline curves used for their evaluation are
+//! cached for better performance. Therefore these evaluations are not
+//! thread-safe and parallel evaluations need to be prevented.
 class GeomAdaptor_Curve  : public Adaptor3d_Curve
 {
 public:
index b03243f..bef6e8a 100644 (file)
@@ -54,6 +54,10 @@ class Adaptor3d_HCurve;
 //! surface from the package Geom and those required
 //! of the surface by algorithms which use it.
 //! Creation of the loaded surface the surface is C1 by piece
+//!
+//! Polynomial coefficients of BSpline surfaces used for their evaluation are
+//! cached for better performance. Therefore these evaluations are not
+//! thread-safe and parallel evaluations need to be prevented.
 class GeomAdaptor_Surface  : public Adaptor3d_Surface
 {
 public: