.[ ČeskéHry.cz ].
LUA
Jdi na stránku Předchozí  1, 2
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 13. září 2013, 22:42:08    Předmět: Odpovědět s citátem

Ještě takový malý dotaz. Lze nějak udělat, aby se coroutine.yield() zavolalo automaticky při každém volání nabidnované funkce?
Např. jestli neexistuje nějaký signál pro skript (který bych volal z C++), aby se sám yieldnul? Nechce se mi ve skriptu za každým voláním psát coroutine.yield()...

Něco na způsob:
kód:
int sayHiFunction(lua_State *L)
{
      printf("Ahoj!");
      lua_yieldAfterReturn(L); <- signál
      return 0;
}


EDIT: Volání yield po každém volání nabidnované funkce je blbost, ale to signálování by bylo fajn...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 13. září 2013, 23:24:26    Předmět: Odpovědět s citátem

Tak si sám odpovím... Wink

kód:
int sayHiFunction(lua_State *L)
{
      printf("Ahoj!");
      return lua_yield(L, 0);  <- 0 bude počet return hodnot :D
}

_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 14. září 2013, 00:41:16    Předmět: Odpovědět s citátem

Ještě mě tak napadá, abych mohl spouštět stejný skript opakovaně, musím vždy vytvořit nové lua "vlákno" (to staré si gc v lua zabije samo - snad Wink ), ale je poněkud nepraktické opakovaně do nového "vlákna" nahrávat (a tím pádem lua musí opakovaně kompilovat) stejný kód, jako v předchozím vlákně. Nešlo by třeba udělat to, aby když pomocí lua_newthread vytvořím nové vlákno, aby obsahovalo kód z hlavního lua_State?

EDIT: Když jsem to ale teď měřil, tak to zase tak pomalé není a když si zdroják načtu jako řetězec a pak ho budu jen "kompilovat" pomocí lua_loadstring, tak by to běh zpomalit nemělo vůbec...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna