Új hozzászólás Aktív témák
-
nagyúr
válasz Oppenheimer #2479 üzenetére
Szerintem:
class A {
void foo() {}
};
// stb..
A a;
std::thread thread_name(&A::foo,&a);while (!sleep) sheep++;
-
veterán
válasz Oppenheimer #2481 üzenetére
Hazafelé menet leírom hogy mit csináltam, hátha segít majd egyszer valakinek, bár nem egy nagy mágia.
https://play.google.com/store/apps/details?id=com.lovemap.lovemapandroid
-
nagyúr
válasz Oppenheimer #2481 üzenetére
Az miert fontos, hogy melyik szal? (Hacsak nincs UI thread.)
while (!sleep) sheep++;
-
WonderCSabo
félisten
válasz Oppenheimer #2481 üzenetére
Nem tudom, hogy világos-e, de itt nincs semmi extra szintaxis (ahogy javában sincs ebben az esetben). Az std::thread egy sima osztály, thread_name itt a változó neve, és létrehozatalakor a két paraméteres konstruktort hívja meg. Az első paraméter egy függvény pointer, jelen eseten itt egy member function-ra, a második paraméter pedig sima address of operátor, hogy referencia szerint legyen átadva. Ez azért szükséges, hogy a metódus hívásakor adott legyen a this. (Mellesleg a példánymetódusoknál amúgy is valami ilyesmire fordul, mármint mindig a függvény első paramétere az objektum lesz.)
[ Szerkesztve ]
-
veterán
válasz Oppenheimer #2490 üzenetére
Amugy irtam kis kiegeszito programokat amikkel kiprobaltam, hogy mukodik-e amit csinalok, es mukodik. Meg ezen a programon belul is mukodik, csak azon a bizonyos szalom nem.
https://play.google.com/store/apps/details?id=com.lovemap.lovemapandroid
-
veterán
válasz Oppenheimer #2491 üzenetére
Senkinek nincs ötlete?
https://play.google.com/store/apps/details?id=com.lovemap.lovemapandroid
-
nagyúr
válasz Oppenheimer #2492 üzenetére
Publikus a forras? Ha nekiallsz debugolni, akkor mi tortenik (call stack kellene)?
[ Szerkesztve ]
while (!sleep) sheep++;
-
veterán
válasz Oppenheimer #2494 üzenetére
Kicsit elrontottam a debugolási lépések leírását, nem azok a képek vannak, amikre emlékeztem.
Szóval a második képhez tartozó helyes szöveg ez lenne: várakozik is csomagra timeout nélkül, ahogy annak lennie kell.
Az első képhez meg csak annyi a komment, hogy meghívódik a recvfrom()
[ Szerkesztve ]
https://play.google.com/store/apps/details?id=com.lovemap.lovemapandroid
-
nagyúr
válasz Oppenheimer #2495 üzenetére
Tehat jol ertem, hogy
- a problema determinisztikus
- mindig a masodik szalnal jon elo (az elso recvfrom mukodik, de ugyanaz a kod egy masik szalon meghivva mar nem)while (!sleep) sheep++;
-
nagyúr
válasz Oppenheimer #2497 üzenetére
Nyilvan nem az std::cout az erdekes, hanem hogy mit csinal az << operatorod az osztalyodban.
Mi az az adat, ami a ket szalban kozos? Gyanitom, hogy a << operator hasznal osztott adatot.
while (!sleep) sheep++;
-
veterán
válasz Oppenheimer #2499 üzenetére
Tehát az UDP_Socket operator<< függvénye lentebb olvasható (mint mondtam is, mindig működik). A sender_address és a sender_port egy std::string és uint16_t típusú, inicializált változók.
Itt megtörtént a standard outputra kiírás:
De közben felvillan a "debug error!" hibaüzenet, amiből utána ennyi látszik:
Jó, mi?
https://play.google.com/store/apps/details?id=com.lovemap.lovemapandroid
-
nagyúr
válasz Oppenheimer #2500 üzenetére
Az UDP_Socket forrasat es azt, ahol a threadet inditod, nem tudod felrakni a pastebinre (vagy akar ide, de pb jobb)? Ha jol latom, ez nem titkos (merthat eleve adtal rola sok kepernyofotot).
Miben kulonbozik a ket thread?
Plusz:
- a debug opcioknal kapcsold be a 'break on first chance exceptions'-t
- kapcsold be a c++ exception-oknel a 'break on thrown'-t
- esetleg kapcsold ki a just my code-ot[ Szerkesztve ]
while (!sleep) sheep++;
-
nagyúr
válasz Oppenheimer #2502 üzenetére
Headerek? A bufferek amikbe a socketek tarolnak a bejovo cuccot, threadenkent szeparaltak? Megprobaltad bekapcsolni a lentebb emlitett opciokat debugolaskor?
Szerk.: keress mar meg szkajp cseten, vagy valami hasonlo..
[ Szerkesztve ]
while (!sleep) sheep++;
-
nagyúr
válasz Oppenheimer #2504 üzenetére
ctrl+alt+e
... FB is jo, amit akarsz, privatban megirhatod
[ Szerkesztve ]
while (!sleep) sheep++;
-
kingabo
őstag
válasz Oppenheimer #2494 üzenetére
Első kép: kivétel esetén egy memória szemetet adsz vissza! Illetve semmiből sem látszik, hogy hiba történt: se log, se vmi kiíratás, se vmi extremális elem visszaadás, amit a hívó oldalon ellenőrzől, vagy egy bool érték, hogy sikerült-e, vagy bármi amiből a hivó oldalon rájösz, hogy hiba volt, ill debug közben kiírná, hogy hohó hiba törpént...
-
nagyúr
válasz Oppenheimer #2508 üzenetére
Jaja, abort()-ot nem kapsz csak ugy el catch()-el.. (SIGABRT handlerrel lehet talan).
while (!sleep) sheep++;
-
kingabo
őstag
válasz Oppenheimer #2508 üzenetére
Ja, ok. Az már nem rémlett, hogy direkt írtad meg így.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!