[OSy] mutex5 test a DEBUG_MUTEX

Petr Tuma petr.tuma at dsrg.mff.cuni.cz
Thu Nov 1 08:25:17 CET 2007


Dobry den,

vami popsany postup nemuze fungovat. Preprocesor se spousti jednotlive 
na kazdy soubor a direktiva #include v nem ma stejny vyznam, jako byste 
na jeji misto vlozil cely obsah prislusneho hlavickoveho souboru.

Tedy pokud test.c udela #define DEBUG_MUTEX 1, toto nastaveni plati 
pouze v ramci rozvinuti maker v souboru test.c. Na preklad mutex.c uz 
toto nastaveni vubec nema vliv.

Prectete si mail pana Sochny, tam je popsano, jak vas problem vyresit.

Petr Tuma


> technicka otazka:
> symbol DEBUG_MUTEX je nadefinovany v subore test.c a za nim nasleduje
> #include assignement.h, v ktorom su naincludovane vsetky nase
> hlavickove subory.
> V mutex.h si "stav" DEBUG_MUTEX "zapametam" pomocou nejakeho
> 
> #ifdef DEBUG_MUTEX
> 	#define TMP DEBUG_MUTEX
> #else
> 	#define TMP 0
> #endif
> 
> v mutex.c sa pozriem na hodnotu TMP a na zaklade nej rozhodnem o dalsej akcii.
> Problem je, ze v pripade ze symbol DEBUG_MUTEX je alebo nie je
> definovany(v test.c), tak sa TMP v mutex.c nikdy nerozvinie na 1,
> stale len na 0.
> Je nejaky problem s viditelnostou makier cez viacero suborov? (to som
> si myslel, preto ta definicia TMP)... s preprocesorom nemam nejake
> extra skusenosti, a google velmi nepomohol...
> 
> M.D.
> 
> 
> On 10/31/07, Honza Sochna <soptiks at seznam.cz> wrote:
>> Ahoj,
>>
>> Tohle primo souvisi s tim, jak by mely byt tyto podminene testy delane. Tedy
>> nikoliv tak, ze mas jednu funkci a uvnitr ni menis chovani pomoci #ifdef,
>> .... Ale v hlavickovem souboru podle (ne)definice makra menis na jakou
>> funkci
>> se bude mutex_lock, unlock mapovat.. Tedy zkompilovane v nasich zdrojacich
>> budou obe varianty a podle #define na strane uzivatele se vybere jedna z
>> nich.
>>
>> Pokud jsem to pochopil spatne, tak me opravte.
>>
>> HS
>>
>> -----Original Message-----
>> From: osy-bounces at dsrg.mff.cuni.cz [mailto:osy-bounces at dsrg.mff.cuni.cz] On
>> Behalf Of Jan Raszyk
>> Sent: Wednesday, October 31, 2007 9:35 PM
>> To: osy at dsrg.mff.cuni.cz
>> Subject: [OSy] mutex5 test a DEBUG_MUTEX
>>
>>
>> Dobry den.
>>
>> Zadani funkce mutex_unlock narizuje, ze implementace mutexu ma byt
>> zavisla na hodnote symbolu DEBUG_MUTEX. Predpoklada se, ze si tento
>> symbol nadefinujeme sami na hodnotu 1? Pokud to totiz neucinime, test
>> mutex5 zrejme nemuze projit, protoze tento symbol je definovan v nem a
>> my jej nijak neincludujeme do sveho zdrojoveho kodu (a zrejme se
>> nepredpoklada, ze bychom tak meli ucinit).
>>
>> Dekuji,
>> JR
>>
>> _______________________________________________
>> OSy mailing list
>> OSy at dsrg.mff.cuni.cz
>> https://dsrg.mff.cuni.cz/mailman/listinfo/osy
>>
>>
>> _______________________________________________
>> OSy mailing list
>> OSy at dsrg.mff.cuni.cz
>> https://dsrg.mff.cuni.cz/mailman/listinfo/osy
>>
> 
> _______________________________________________
> OSy mailing list
> OSy at dsrg.mff.cuni.cz
> https://dsrg.mff.cuni.cz/mailman/listinfo/osy

-- 
Petr Tuma
Distributed Systems Research Group
Department of Software Engineering
Faculty of Mathematics and Physics
Charles University, Czech Republic
   http://dsrg.mff.cuni.cz/~ceres




More information about the NSWI004 mailing list