Article View: pl.comp.demoscena
Article #32946synchro watkow na wingrozie
From: biki
Date: Thu, 31 Mar 2005 10:55
Date: Thu, 31 Mar 2005 10:55
59 lines
2480 bytes
2480 bytes
zna sie kto dobrze na watkach w windozie?
konkretnie chodzi mi o synchronizacje.
chce sobie zrobic rendering i occlusion culling na osobnych watkach
i troche mi sie to kwasi bo nie umiem posynchronizowac?
konkretnie jest tak.
glowny watek uruchamia watek cullera ktory sobie liczy widocznosc sceny
i widoczne obiekty wrzuca do listy (na koniec)
glowny program zaraz po tym wywolaniu zaczyna sprawdzac czy cos sie
pojawilo na liscie i jesli tak to to renderuje. no i mam kwas..
tak wyglada procka watku.
robi swoje a potem sygnalizuje ze skonczyla
DWORD WINAPI _ThreadFunc(LPVOID param) {
culler *cull;
cull=(culler*)param;
cull->OcclusionCulling();
cull->culling_in_progress=0;
}
tu ustawiam flage zeruje liste i odpalam watek
void culler::ThreadedOcclusionCulling(void) {
culling_in_progress=1;
items=NULL; tail=NULL;
othread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_ThreadFunc,this,0,
&thread_id);
}
tu pobieram pierwszy element na liscie
jesli jeszcze nie ma to czekam az sie pojawi albo culler skonczy prace
i zwracam nowy obiekt ktory sie pojawil albo null
node *culler::GetFirstNode(void){
while (items==NULL) {
if (culling_in_progress==0) return NULL;
}
temp_node=items;
return temp_node;
}
tu pobieram kolejny obiekt podobnie synchronizujac z cullerem
node *culler::GetNextNode(void) {
while (temp_node->next==NULL) {
if (culling_in_progress==0) return NULL;
}
temp_node=temp_node->next;
return temp_node;
}
no i kicha polega na tym ze jak miedzy odpaleniem watku a pobraniem
pierwszego obiektu wyniku mija dlugi czas jest ok
ale jak chce to robic w pelni rownolegle to efekt jest taki jakby culler
skonczyl prace a na liscie nic nie bylo.
moze ktorys pomoc??
Technical Details
Message-ID:
<962A8E53Ebikikillerradomnet@193.110.122.97>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!nemesis.news.tpi.pl!news.tpi.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!nemesis.news.tpi.pl!news.tpi.pl!not-for-mail From: biki@viper.pl (biki) Newsgroups: pl.comp.demoscena Subject: synchro watkow na wingrozie Date: Thu, 31 Mar 2005 10:55:08 +0000 (UTC) Organization: ? Lines: 60 Message-ID: <962A8E53Ebikikillerradomnet@193.110.122.97> NNTP-Posting-Host: 213.76.128.242 X-Trace: nemesis.news.tpi.pl 1112266508 20741 213.76.128.242 (31 Mar 2005 10:55:08 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Thu, 31 Mar 2005 10:55:08 +0000 (UTC) User-Agent: Xnews/03.08.28 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit