From a2e2cffeb33d1a536065d50605c541cbc6d3deba Mon Sep 17 00:00:00 2001 From: vsr Date: Fri, 27 Dec 2013 13:32:53 +0000 Subject: [PATCH] Merge from V7_3_BR_WIN --- src/SMESH/SMESH_Mesh.cxx | 29 ++++++++++++++++++++++++---- src/SMESHGUI/SMESHGUI_ComputeDlg.cxx | 4 +++- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/SMESH/SMESH_Mesh.cxx b/src/SMESH/SMESH_Mesh.cxx index 4c1383356..4a00711b7 100644 --- a/src/SMESH/SMESH_Mesh.cxx +++ b/src/SMESH/SMESH_Mesh.cxx @@ -69,9 +69,12 @@ #include "SMESH_TryCatch.hxx" // include after OCCT headers! #include "Utils_ExceptHandlers.hxx" - +#ifndef WIN32 #include #include +#else +#include +#endif using namespace std; @@ -139,11 +142,23 @@ SMESH_Mesh::SMESH_Mesh(): namespace { - void deleteMeshDS(SMESHDS_Mesh* meshDS) +#ifndef WIN32 + void deleteMeshDS(SMESHDS_Mesh* meshDS) { //cout << "deleteMeshDS( " << meshDS << endl; delete meshDS; } +#else + static void* deleteMeshDS(void* meshDS) + { + //cout << "deleteMeshDS( " << meshDS << endl; + SMESHDS_Mesh* m = (SMESHDS_Mesh*)meshDS; + if(m) { + delete m; + } + return 0; + } +#endif } //============================================================================= @@ -191,9 +206,15 @@ SMESH_Mesh::~SMESH_Mesh() _myDocument->RemoveMesh( _id ); _myDocument = 0; - if ( _myMeshDS ) - // delete _myMeshDS, in a thread in order not to block closing a study with large meshes + if ( _myMeshDS ) { + // delete _myMeshDS, in a thread in order not to block closing a study with large meshes +#ifndef WIN32 boost::thread aThread(boost::bind( & deleteMeshDS, _myMeshDS )); +#else + pthread_t thread; + int result=pthread_create(&thread, NULL, deleteMeshDS, (void*)_myMeshDS); +#endif + } } //================================================================================ diff --git a/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx b/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx index e99cf69b5..edb1f7dba 100644 --- a/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx @@ -748,10 +748,12 @@ SMESHGUI_ComputeDlg_QThreadQDialog::SMESHGUI_ComputeDlg_QThreadQDialog(QWidget QLabel * nbNodesName = new QLabel(tr("SMESH_MESHINFO_NODES"), this ); QLabel * nbElemsName = new QLabel(tr("SMESH_MESHINFO_ELEMENTS"), this ); - QLabel * freeRAMName = new QLabel(tr("SMESH_FREERAM"), this ); nbNodesLabel = new QLabel("0", this ); nbElemsLabel = new QLabel("0", this ); +#ifndef WIN32 + QLabel * freeRAMName = new QLabel(tr("SMESH_FREERAM"), this ); freeRAMLabel = new QLabel("", this ); +#endif progressBar = new QProgressBar(this); progressBar->setMinimum( 0 ); progressBar->setMaximum( 1000 ); -- 2.39.2