Untitled
unknown
plain_text
3 years ago
783 B
8
Indexable
#include <linux/kthread.h>
#include <linux/sched.h>
static struct task_struct *thread_st;
int thread_fn(void *data)
{
// kod wykonywany przez wątek
while (!kthread_should_stop())
{
// instrukcje
set_current_state(TASK_INTERRUPTIBLE);
schedule();
}
return 0;
}
int init_module(void)
{
// Tworzenie nowego wątku
thread_st = kthread_run(thread_fn, NULL, "my_thread");
if (IS_ERR(thread_st))
{
printk(KERN_ERR "Nie udało się utworzyć wątku\n");
return PTR_ERR(thread_st);
}
return 0;
}
void cleanup_module(void)
{
// Zatrzymanie wątku
if (thread_st)
{
kthread_stop(thread_st);
printk(KERN_INFO "Wątek zatrzymany\n");
}
}
Editor is loading...