Witam.
Mam funkcję
void q_sort(tab_s **tabp) //tab_s to struct z polami int start, end, *table
{
int poczatek = (*tabp)->start;
int koniec = (*tabp)->end;
int *tab = (*tabp)->table;
if (koniec > poczatek + 1)
{
int os = tab [poczatek]; //oś podziału tablicy
int lewo = poczatek + 1;
int prawo = koniec;
while (lewo < prawo)
{
if (tab [lewo] <= os)
lewo++;
else
zamien (&tab [lewo], &tab [--prawo]);
}
zamien (&tab [--lewo], &tab [poczatek]);
(*tabp)->start = poczatek;
(*tabp)->end = lewo;
(*tabp)->table = tab;
q_sort (&(*tabp));
(*tabp)->start = prawo;
(*tabp)->end = kazoniec;
(*tabp)->table = tab;
q_sort (&(*tabp));
}
}
i teraz tak:
- Muszę napisać ją tak, żeby dało się ją uruchomić w wątku.
- Wywołania w wątkach są zawarte gdzieś w mainie.
- Jednak rekurencyjne wywołania funkcji już nie powinny uruchamiać się w osobnych wątkach.
- Zamknąć to wszystko w dll-ce i wywoływać z ASMa (ale to jak na razie przyszłość).
No i mam problem z przekazaniem tej struktury. Nie wiem, czy pisać oddzielnie funkcje wątkową, która dopiero wywołuje sorta, czy można to zrobić w jednej funkcji wątkowej.
Pozdrawiam Mrok