[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48023] branches/soc-2012-swiss_cheese/ source/gameengine/Converter/KX_BlenderSceneConverter.cpp: Removing the ability to cancel libload threads for now.

Mitchell Stokes mogurijin at gmail.com
Mon Jun 18 07:17:15 CEST 2012


Revision: 48023
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48023
Author:   moguri
Date:     2012-06-18 05:17:06 +0000 (Mon, 18 Jun 2012)
Log Message:
-----------
Removing the ability to cancel libload threads for now. They were causing memory leaks and problems for Android.

Modified Paths:
--------------
    branches/soc-2012-swiss_cheese/source/gameengine/Converter/KX_BlenderSceneConverter.cpp

Modified: branches/soc-2012-swiss_cheese/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
===================================================================
--- branches/soc-2012-swiss_cheese/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2012-06-18 02:42:44 UTC (rev 48022)
+++ branches/soc-2012-swiss_cheese/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2012-06-18 05:17:06 UTC (rev 48023)
@@ -144,9 +144,6 @@
 	
 	vector<pthread_t>::iterator pit = m_threadinfo->threads.begin();
 	while (pit != m_threadinfo->threads.end()) {
-#ifndef WITH_ANDROID
-        pthread_cancel((*pit));
-#endif
 		pthread_join((*pit), NULL);
 		pit++;
 	}
@@ -947,48 +944,19 @@
 	m_mergequeue.push_back(pair<KX_Scene*,KX_Scene*>(merge_scene, other));
 }
 
-typedef struct {KX_BlenderSceneConverter *converter; KX_Scene **scene; struct Main *maggie;} cleanup_args;
-void async_cleanup(void *ptr)
-{
-	cleanup_args *args = (cleanup_args*)ptr;
-	KX_Scene **scene = args->scene;
-	if (*scene)
-	{
-		delete *scene;
-		*scene = NULL;
-	}
-
-	args->converter->FreeBlendFile(args->maggie);
-
-	delete args;
-	printf("Cleanup called\n");
-}
-
-typedef struct {KX_BlenderSceneConverter *converter; KX_KetsjiEngine *engine; Scene *scene; struct Main *maggie; KX_Scene *merge_scene;} async_args;
+typedef struct {KX_BlenderSceneConverter *converter; KX_KetsjiEngine *engine; Scene *scene; KX_Scene *merge_scene;} async_args;
 void *async_convert(void *ptr)
 {
 	int cleanedup=0;
 	KX_Scene *new_scene=NULL;
 	async_args *args = (async_args*)ptr;
 
-	cleanup_args *cargs = new cleanup_args();
-	cargs->converter = args->converter;
-	cargs->scene = &new_scene;
-	cargs->maggie = args->maggie;
-
-	pthread_cleanup_push(async_cleanup, cargs);
-#ifndef WITH_ANDROID
-    pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
-#endif
 	new_scene = args->engine->CreateScene(args->scene);
 
-	pthread_cleanup_pop(cleanedup);
-
 	if (new_scene)
 		args->converter->AddScenesToMergeQueue(args->merge_scene, new_scene);
 
 	delete args;
-	delete cargs;
 	return NULL;
 }
 
@@ -1123,7 +1091,6 @@
 				args->converter = this;
 				args->engine = m_ketsjiEngine;
 				args->scene = (Scene*)scene;
-				args->maggie = main_newlib;
 				args->merge_scene = scene_merge;
 				pthread_create(&id, NULL, &async_convert, (void*)args);
 				m_threadinfo->threads.push_back(id);




More information about the Bf-blender-cvs mailing list