@une exatamente. básico, mas levei um tempão para isolar o problema e entender o que estava acontecendo. A solução foi alocar o kthread_t no heap. Isso gera um vazamento de memória, já que eu nunca faço free dele mas, como nesse caso o serviço não termina nunca, tudo bem. Isso me indicou também que eu preciso saber o estado da thread a qualquer momento, coisa que não sei atualmente. Com isso, consigo implementar um join.
#menios Questão de prova que eu passei quase um mês batendo cabeça para achar o bug: kthread_create recebe como parâmetros um ponteiro para uma struct kthread_t, um nome, a função que contém o código a ser executado e o parâmetro para essa função. Essa função já cuida de botar o código no scheduler e, em algum momento ele vai rodar de forma concorrente, não precisa mandar explicitamente a thread rodar.
A chamada dentro de main funciona, mas a chamada dentro da função dá pau e derruba o kernel. Por que?
Em algum momento a Nova Brasil FM começou a adicionar análises políticas na programação. Não sei há quantos anos isso acontece, eu não ouço rádio, mas sei que quando eu ouvia não tinha. São umas análises tão burras, tão rasas, que eu me pergunto como deve ser receber salário para falar tanta merda. Hoje rolou o seguinte comentário: "no primeiro turno, Boulos ganhou do Nunes em 20 zonas eleitorais, e agora só em três. O que aconteceu com essas outras 17?" Primeiro que a análise deveria ser se nessas 17 ele recebeu menos votos. Acho pouco provável aque tenha sido o caso. Segundo que, no primeiro turno, os votos da extrema-direita estavam divididos entre Nunes e o coach, então era mais fácil mesmo ganhar dos dois separadamente. Cada vez mais eu penso que o trabalho dos sonhos seja ser pago para falar asneiras e ainda, eventualmente, ser premiado por isso.