[OSy] problem s CAHASL

Premek Paska premek.paska at gmail.com
Sun Dec 4 17:36:57 CET 2005


Ahoj,

IMHO je to chyba v magiku v list_append a check mel by vypadat takto:

*/**** * Append an item to the end of the list.** */*
void
list_append (list_t * list, list_t * item)
{
	MAGIC_CHECK (list, MAGIC_LIST);
	MAGIC_INIT (item, MAGIC_LIST);

	*if* (list_present (list, item))
		*return*;

	item->next = list;
	item->prev = list->prev;

	list->prev->next = item;
	list->prev = item;
}


On 12/4/05, jakub.podhorny at seznam.cz <jakub.podhorny at seznam.cz> wrote:
>
> Zdravim,
>
> mame problem s jadrem CAHASL, ktere jsme si vybrali.
>
> Vzali jsme jadro tak, jak bylo a jenom jsme do example.c do funkce example
> pridali za thread_create( &b) a (&c) prikaz thread_kill( b) a (c). Zacalo
> to
> periodicky vypisovat toto:
>
> Initializing Kalisto environment... done
>
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> EXAMPLE: waiting 5s
> EXAMPLE: waiting 5s
> CHECK_MAGIC failed in file list.c on line 84, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 105, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 66, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> thread b start
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 84, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 105, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 66, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> thread c start
> !@#$-----------------------------------------------CHECK_MAGIC failed in
> file
> list.c on line 84, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 105, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 66, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> abcde aaaaaaaaaaaaaaaaaa abcde aaaaaaaaaaaaaaaaaaaaa abcde aaaCHECK_MAGIC
> failed in file list.c on line 84, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 105, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 66, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
> ----------------------------------CHECK_MAGIC failed in file list.c on
> line
> 46, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 84, magic is 0x0
> CHECK_MAGIC failed in file list.c on line 46, magic is 0x0
>
> Takze je videt, ze to vlakna nezabilo + si to vypisuje podivne chybove
> vypisy,
> ktere nejsou vubec zdokumentovane.
>
> Kdyz thread_kill() dame jinam - dame vlaknum b a c sanci na to se uspat,
> tak
> to vypise radku CHECK_MAGIC failed ... jenom jedenkrat a vlakno to, zda
> se,
> skutecne zabije (uz nic nevypsuje na obrazovku). Znamena to tedy, ze
> vlakna
> READY_TO_RUN nejdou zabijet? Nebo delame neco spatne? Opravdu pouze volame
> kill na vlakna, ktera jsou vytvorena standradne (vami vasim kodem).
>
> Co znamenaji ty magic funkce? Zda se, ze je to nejake tagovani struktur.
> Ale
> opet komentare spore.
>
> A mohli byste prosim strucne povedet, jak vypsat vsechna vlakna ve fronte?
> Je
> to thread->all_threads ? A kam jeho polozky next a prev ukazjuji? Zda se
> nam
> to podivne a z obcasnych komentaru ze zdrojaku moc chytri nejsme.
>
> Prosim poradte,
> BiKoPo.
> _______________________________________________
> OSy mailing list
> OSy at nenya.ms.mff.cuni.cz
> http://nenya.ms.mff.cuni.cz/mailman/listinfo/osy
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://d3s.mff.cuni.cz/pipermail/nswi004/attachments/20051204/ff6d5b94/attachment.html>


More information about the NSWI004 mailing list