[so][tema3][probleme checker]

Alexandru Mosoi brtzsnr at gmail.com
Sat Dec 1 18:54:27 EET 2007


cred ca trebuie sa folosesti extern "C" ca sa combini sursele scrise
in C cu cele scrise in C++.

incearca asa (e suficient sa le declari astfel doar la prototipare):

extern "C" {

// va crea un monitor cu numarul de variabile conditie si cu
// politica de functionare specificate ca parametrii;
Monitor* Create(int conditions, char policy);

// firul de executie apelant va incerca sa intre in monitor
// si daca monitorul este deja ocupat se va bloca la coada Entry.
int Enter(Monitor* m);

// va if apelat de catre un fir de executie care doreste
// sa paraseasca monitorul.
int Leave(Monitor* m);

// firul de executie apelant se va bloca la variabila conditie cond.
int Wait(Monitor* m, int cond);

// se va semnaliza variabila conditie cond deblocandu-se astfel un
// fir de executie care astepta la variabila conditie respectiva.
// Daca nici un alt fir de executie nu asteapta la variabila
// conditie cond, apelul signal nu va avea nici un efect.
int Signal(Monitor* m, int cond);

// se va semnaliza variabila conditie cond deblocandu-se astfel
// toate firele de executie care asteptau la variabila conditie
// respectiva. Daca nici un alt fir de executie nu asteapta la
// variabila conditie cond, apelul broadcast nu va avea nici un efect.
int Broadcast(Monitor* m, int cond);

// ve distruge monitorul eliberand toate resursele alocate la
// crearea acestuia.
int Destroy(Monitor* m);

};


On Dec 1, 2007 6:24 PM, Octavian Purdila <tavi at cs.pub.ro> wrote:
> On Saturday 01 December 2007, iulia val wrote:
> > salut!
> >
> > Am o prroblema la tema3 pe  linux
> > Bibliotecile le-am compilat cu g++.
> >
> > In if-ul din checker, la build-post imi intra pe
> > ramura cu gcc si evident nu merge.
> >
>
> Poti sa ne zici ce zice
>
> ldd LibMonitor.so
>
> si
>
> ldd LibRW.so | grep libstdc
>
> ?
>
> > Daca ii dau manual in bash cu g++ si linia aia de
> > linkare a .o-urilor ca sa se obtina executabilul Test
> > merge. Aici am o alta problema. Merge numai daca si
> > .o-urile din _test le-am obtinut tot cu g++ (??????)
> > habar nu am de ce se intampla asa.
> >
>
> Probabil e din cauza name manglling-ului [1], dar pana nu vedem erorile nu
> putem fi siguri.
>
> [1] http://en.wikipedia.org/wiki/Name_mangling
>
> tavi
>
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>



-- 
Alexandru Moşoi
http://alexandru.mosoi.googlepages.com

Please avoid sending me Word or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html


More information about the so mailing list