🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.demoscena
Article #32946

synchro watkow na wingrozie

#32946
From: biki
Date: Thu, 31 Mar 2005 10:55
59 lines
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-mail

Show 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