[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