X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fscripting%2Fthread_queue.cpp;h=277eff12b15757558d38d9b7890a95ea8d51ae67;hb=127a53d73c5dff3fac5b10ff3f1dd087938d8c7f;hp=100db79c11cb8f574ee55131ce05eb9ce32ae78c;hpb=c62711567861587107d124642db29e2674ee6533;p=supertux.git diff --git a/src/scripting/thread_queue.cpp b/src/scripting/thread_queue.cpp index 100db79c1..277eff12b 100644 --- a/src/scripting/thread_queue.cpp +++ b/src/scripting/thread_queue.cpp @@ -1,12 +1,10 @@ -// $Id: wrapper_util.cpp 3327 2006-04-13 15:02:40Z ravu_al_hemio $ -// // SuperTux // Copyright (C) 2006 Matthias Braun // -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,18 +12,19 @@ // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#include +// along with this program. If not, see . + +#include "scripting/thread_queue.hpp" -#include "thread_queue.hpp" -#include "squirrel_util.hpp" -#include "log.hpp" +#include "scripting/scripting.hpp" +#include "scripting/squirrel_util.hpp" +#include "util/log.hpp" -namespace Scripting +namespace scripting { -ThreadQueue::ThreadQueue() +ThreadQueue::ThreadQueue() : + threads() { } @@ -46,10 +45,10 @@ ThreadQueue::add(HSQUIRRELVM vm) sq_pop(global_vm, 2); throw SquirrelError(global_vm, "Couldn't get thread weakref from vm"); } - sq_addref(global_vm, &object); + sq_addref(global_vm, &object); threads.push_back(object); - sq_pop(global_vm, 2); + sq_pop(global_vm, 2); } void @@ -63,18 +62,18 @@ ThreadQueue::wakeup() size_t size_begin = threads.size(); while(i != end) { HSQOBJECT object = threads[i]; - + sq_pushobject(global_vm, object); sq_getweakrefval(global_vm, -1); HSQUIRRELVM scheduled_vm; if(sq_gettype(global_vm, -1) == OT_THREAD && - SQ_SUCCEEDED(sq_getthread(global_vm, -1, &scheduled_vm))) { - if(SQ_FAILED(sq_wakeupvm(scheduled_vm, SQFalse, SQFalse, SQTrue))) { + SQ_SUCCEEDED(sq_getthread(global_vm, -1, &scheduled_vm))) { + if(SQ_FAILED(sq_wakeupvm(scheduled_vm, SQFalse, SQFalse, SQTrue, SQFalse))) { log_warning << "Couldn't wakeup scheduled squirrel VM" << std::endl; } } - + sq_release(global_vm, &object); sq_pop(global_vm, 1); i--; @@ -85,3 +84,4 @@ ThreadQueue::wakeup() } +/* EOF */