Paweł Wieczorek avatar Paweł Wieczorek committed 817b382

* dalsza czesc dokumentacji

Comments (0)

Files changed (2)

 /**
  * @brief inicjalizuje zamek typu mutex
  * @param _mtx referencja do deskryptora zamku
- * @param n nie używane
+ * @param n
  */
 int
 pwuthread_mutex_init(pwuthread_mutex_t *_mtx, const void *n)
 }
 
 /**
- * @brief 
+ * @brief tworzy deskryptor zmiennej warunkowej
+ * @param _cnd deskryptor do uzupełnienia
+ * @param _ 
  */
 int
 pwuthread_cond_init(pwuthread_cond_t *_cnd, const void *_)
     return 0;
 }
 
+/**
+ * @brief usypia wątek w oczekiwaniu na zdarzenie
+ * @param _cnd zmienna warunkowa
+ * @param _mtx zamek opisujący obecną sekcję krytyczną
+ * @return 0 gdy uśpiono wątek (wynik dostępny po obudzeniu), EPERM gdy
+ *          wątek nie jest właścicielem zamka _mtx
+ *
+ * Procedura oblokowuje sekcję krytyczna zamka _mtx i usypia wątek.
+ * Gdy wątek jest budzony automatycznie zostaje ponownie właścicielem _mtx
+ */
 int
 pwuthread_cond_wait(pwuthread_cond_t *_cnd, pwuthread_mutex_t *_mtx)
 {
     return r;
 }
 
+/**
+ * @brief budzi jeden wątek oczekujący na zdarzenie
+ * @param _cnd zmienna warunkowa, na której mógł być uśpiony wątek
+ */
 int
 pwuthread_cond_signal(pwuthread_cond_t *_cnd)
 {
     return 0;
 }
 
+/**
+ * @brief budzi wszystkie uśpione wątki czekające na zdarzenie
+ * @param _cnd zmienna warunkowa, na której mogą być uśpione wątki
+ */
 int
 pwuthread_cond_broadcast(pwuthread_cond_t *_cnd)
 {
     return 0;
 }
 
-
+/**
+ * @brief wewnętrzna procedura zamykająca zamek
+ * @param mtx zamek typu mutex
+ * @param t wątek mający zostać właścicielem
+ *
+ * Procedura decyduje, czy wątek staje się właścicielem od razu, czy trafia
+ * do kolejki wątków oczekujących na zamek.
+ */
 int
 mutex_lock(pwuthread_mutex_t mtx, pwuthread_t t)
 {
     return r;
 }
 
+/**
+ * @brief wewnętrzna procedura otwierająca zamek
+ * @param mtx zamek
+ *
+ * Procedura automatycznie ustanawia i budzi kolejnego własciciela 
+ * zamka.
+ */
 void
 mutex_unlock(pwuthread_mutex_t mtx)
 {
 #include <errno.h>
 #include <assert.h>
 
-/*
- *
+/**
+ * @brief tworzy nowy wątek
+ * @param t referencja do deskryptora wątku do uzupełnienia
+ * @param a referencja do obiektu atrybutów wątku (lub NULL)
+ * @param func podprogram wątku
+ * @param arg argument przekazywany do podprogramu wątku
  */
 int
 pwuthread_create(pwuthread_t *t, pwuthread_attr_t *a,
     return 0;
 }
 
+/**
+ * @brief niszczy zasoby wątku
+ * @warning powinna być używana jedynie przez planistę, w ramach zadań
+ *          administracyjnych
+ * @param t deskryptor wątku
+ */
 void
 pwuthread_destroy(pwuthread_t t)
 {
     free(t);
 }
 
-/*
+/**
+ * @brief ciało wątku
+ * @warning powinna być używana jedynie przez niskopoziomowy mechanizm
+ *          obsługi kontekstu procesora
+ * @param t wątek który ma działać
  *
+ * Procedura uruchamiana przez niskopoziomową obsługę kontekstu procesora
+ * stanowi jego podprogram, a w tym uruchamia podprogram właściwy
+ * dany przez użytkownika, oraz zabija wątek po jego zakończeniu.
  */
 void
 pwuthread_work(pwuthread_t t)
     abort();
 }
 
-/*
+/**
+ * @brief dołącza się do danego wątku
+ * @param t wątek, do którego chcemy dołączyć
+ * @param arg referencja do zmiennej, która ma być uzupełniona wynikiem
+ *        wątku t, jeżeli NULL to ignorowane.
+ * @warning do każdego wątku może dołączyć tylko jeden wątek
  *
+ * Procedura pobiera wynik danego wątku lub czeka jeżeli ten nadal działa.
+ * Po zakończeniu działania podany wątek zostanie odłączony.
  */
 int
 pwuthread_join(pwuthread_t t, void **arg)
     return 0;
 }
 
-/*
+/**
+ * @brief odłącza dany wątek
+ * @param t watek do odłączenia
+ * @return 0 gdy się udało, EINVAL gdy wątek już jest odłączony lub dołączył
+ *          do niego inny wątek (join).
  *
+ * Odłącza wątek t ma niszczone zasoby gdy jest już martwy lub gdy zakończy
+ * swoje działanie, gdy nadal działa. Jeżeli wątek jest odłączony to nie można
+ * już do niego dołączyć (użyć join).
  */
 int
 pwuthread_detach(pwuthread_t t)
     return 0;
 }
 
-/*
- *
+/**
+ * @brief kończy działający wątek z podanym wynikiem
+ * @param r wynik działania wątku
  */
 void
 pwuthread_exit(void *r)
     pwuthread_sched_exit();
 }
 
-/*
- *
+/**
+ * @brief przekazuje sterownie do programu planisty
  */
 void
 pwuthread_yield(void)
     pwuthread_sched_yield();
 }
 
-
+/*
 void
 pwuthread_switch(pwuthread_t t)
 {
         pwuthread_current = old;
     }
 }
+*/
 
-
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.