Transcrição do áudio
É, coleguinha, agora numa cadeira melhor, cara Puta que pariu, mano Só que é foda, cara, que é assim Aqui em casa, se você olhar o número de pessoas e o número de cadeiras na mesa de jantar A mesa de jantar tem o dobro de cadeiras Só que se eu tirar uma cadeira de lá e trazer pra um estúdio Uma cadeira, a mulher bate aqui no estúdio dizendo que é pra eu devolver a cadeira Puta que pariu, cara Ó, essa é durinha, essa é tranquila, não faz barulho, é muito gostosa Bom, foda, né, cara? Acho que vou ter que comprar uma mesa de jantar nova só pra poder pegar uma cadeira Vamos lá Nós temos uma constante também dentro do, atualmente, do C, Signal Que é uma função que faz basicamente o que essa função faz Que é receber um sinal E sair Simples Ela é a SIGING E você pode colocar aqui, tá? Pra você não ter que fazer, caso você queira só fazer a tratativa do sinal Mas é, eu acho desnecessário fazer esse tipo de coisa Porque naturalmente todo o processo vai fazer isso aqui, tá? O que que você faz aqui? Aqui eu coloquei uma mensagem idiota, no output idiota, é isso? Aqui você poderia salvar o arquivo que tava em edição pelo programa Fechar as conexões Que estavam Fechar as telas Você poderia fazer, naturalmente, todo um código de limpeza E, naturalmente, proteção, né? Dos dados aqui Pra não corromper, né, coleguinha? Aqui você tem, naturalmente, um exemplo, de novo, tá? E eu faço um aço de repetição e eu mesmo dou um raise signal int em mim mesmo Então, imagina que você... Tem várias classes, vários arquivos dentro do seu sistema E uma dessas classes, ela simplesmente trunca o próprio programa como um todo Você poder dar um raise Daí vem o raise do exception, que vocês estão acostumados, tá? Peraí Legal Peraí, deixa eu mandar uma mensagem pro coleguinha Faça um deploy Faça um deploy, pô Aí, o que que acontece? Então, você tem um aço de repetição Se chegar aqui, ele, então, dá um fim Um sleepzinho aqui, né? Porque, se não, é rápido demais Repare que ele vai parar o próprio programa Então, é pra isso que serve o raise Raise new exception É isso? Close new exception É isso? Mais ou menos é parecido com isso Lembrando que você pode não sair, tá? Você pode não sair Aqui, eu tô utilizando o RUP Tô pegando o meu próprio PID Meu Process ID Aqui, ó O Get PID pega o Process ID do processo corrente, tá? No caso, eu Esse processo E aí, repare que eu tô executando o comando PIL PIL PID E SIGUSER1 Ou seja, eu tô dando um sinal De pedido de finalização Né? Né? De um processo de usuário E aí, ele finaliza Que, normalmente, coloca uma saídinha Bonitinha Beleza? Já esse exemplo aqui Eu não tenho um exit Eu não tenho um exit Tá? Signal Point Handler E aqui é o Signal To Handler Dos filhos Então, aqui eu tenho o FORK É uma mistura de FORK, Processos Filho Com FIND Processos Que nós já vimos E Eventos POSIX Então, olha só Eu venho aqui, eu crio um Process Né? Filho Se é menor que zero, deu pau Tchau Se, no caso, é o PID Ele é igual a zero Então, nós estamos falando que o Processo Filho Né? Processo Filho PID retornado pelo FORK é zero Vai fazer isso aqui Que é colocar Um Handler do Filho No caso, se for um número maior que zero Então, é o Processo Pai Lembra que eu falei que eu odeio essa jogadinha de IF? Cara, eu odeio essa jogadinha de IF E aqui eu tenho o Signal do Pai Então, dessa forma você consegue trabalhar Com o Signal pro Processo Filho Signal pro Processo Pai Tá? E você consegue dar um Kill No Processo Finalizar Você vai ver que tanto o Pai como o Filho vão receber o mesmo sinal De finalização Tá? E aí, todo mundo vai morrer Na execução Você tem que lembrar do livro do Tannibal No capítulo de Multiprocessamento Em que ele fala que se todos os Processos De um grupo de trabalho Eles vão receber um sinal Ou todos eles recebem Ou nenhum recebe Quando um Processo Pai Ele abre um Processo Filho pro FORK Todos os processos daquele grupo de trabalho Ou seja, o Pai e o Filho Receberão um sinal É daí que vem aquela teoria Na verdade, desculpa Não é que daqui vem a teoria É aqui que é aplicada aquela teoria Beleza? Próxima aula nós vamos falar do escalonamento Foi mal aí pela cadeira Mas eu tinha que desabafar Mano, tô puto com essa cadeira, cara Estou ao lado com essa cadeira Até mais, tchau