Size: a a a

2020 March 31

s

sexst in Go-go!
Alexandr Sokolov
Тут я не уверен, но если kill придет, то я сильно сомневаюсь, что кто-то что-то будет ждать
Ну вообще видал я и такое, чтобы kill -9 был беспомощен.
источник

in Go-go!
sexst
Ну вообще видал я и такое, чтобы kill -9 был беспомощен.
Это как вообще?
источник

s

sexst in Go-go!
А вот вопрос, как у меня тогда после обработки signal и exit всё равно продолжает работать чтение из stdin
Треды процесса в операционной системе остаются?
источник

in Go-go!
sexst
Треды процесса в операционной системе остаются?
Хммм, нет
источник

in Go-go!
Кстати, если собрать через go build, а не через go run, то всё нормально убивается
источник

s

sexst in Go-go!
Это как вообще?
Это когда kill -9 $(pgrep -f influx) и нифига не происходит
источник

in Go-go!
Вот код:
package main

import (
 "bufio"
 "fmt"
 "log"
 "os"
 "os/signal"

 "golang.org/x/crypto/ssh/terminal"
)

func getInput() error {
 b := bufio.NewReader(os.Stdin)
 for {
   r, _, err := b.ReadRune()
   if err != nil {
     return fmt.Errorf("reading stdin: %w", err)
   }
   fmt.Println(r)
 }
}

func Start() {
 state, err := terminal.MakeRaw(0)
 if err != nil {
   log.Fatalf("setting stdin to raw: %w", err)
 }

 defer func() {
   if err := terminal.Restore(0, state); err != nil {
     log.Fatalf("restoring terminal: %w", err)
   }
 }()

 go func() {
   if err = getInput(); err != nil {
     log.Fatal(err)
   }
 }()

 sig := make(chan os.Signal, 1)
 signal.Notify(sig, os.Interrupt)

 <-sig
 os.Exit(1)
}
источник

s

sexst in Go-go!
Хммм, нет
Значит и горутин нет.
источник

in Go-go!
sexst
Значит и горутин нет.
Ну хз, у меня всё равно выводился после этого символ и ошибка, что больше нельзя читать stdin
источник

s

sexst in Go-go!
Ну можно  сигнализировать горутине о необходимости выйти, хотя бы банально на каналах.
источник

in Go-go!
sexst
Ну можно  сигнализировать горутине о необходимости выйти, хотя бы банально на каналах.
А как я системный вызов прерву?
источник

s

sexst in Go-go!
А как я системный вызов прерву?
Какой вызов то? Чтение из пайпа это не единый долгий монолитный вызов
источник

in Go-go!
sexst
Какой вызов то? Чтение из пайпа это не единый долгий монолитный вызов
Да, я немного не это имел в виду
источник

in Go-go!
Как я прерву ReadRune?
источник

in Go-go!
Короче говоря, спасибо. Проблему уже решил :D
источник

s

sexst in Go-go!
Как я прерву ReadRune?
os.Stdin закрывается -> ReadRune прерывается.
источник

in Go-go!
sexst
os.Stdin закрывается -> ReadRune прерывается.
А у меня не прервался почему-то
источник

A

Aleksandr in Go-go!
господа, подскажите, пожалуйста, а как конвертировать строку в enum и как проверить, что строка подпадает под варианты в Enum? Большое спасибо)
источник

DP

Daniel Podolsky in Go-go!
в go нет enum
источник

RS

Roman Sharkov in Go-go!
Aleksandr
господа, подскажите, пожалуйста, а как конвертировать строку в enum и как проверить, что строка подпадает под варианты в Enum? Большое спасибо)
switch case?
источник