ძირითადი პაკეტი იმპორტი ( "fmt" ) ფუნქცია main() { c := make(chan string) go fmt.Println(<-c) c <- "სალამი მსოფლიო!" fmt.Println("გამოსვლა!") } ფატალური შეცდომა: ყველა goroutine მძინარეა - deadlock! goroutine 1 [კანალის მიღება]: main.main() /tmp/sandbox[phone]/prog.go:10 +0x3a პროგრამა დასრულდა: სტატუსი 2.
Golang
var defaultTxOptions = &sql.TxOptions{} const defaultCurrency = "RUB" func CreateUserWithDefaultCurrency(ctx context.Context, db *sql.DB, email, passwordHash string) error { tx, err := db.BeginTx(ctx, defaultTxOptions) if err != nil { return err } defer func() { if err != nil{ tx.Rollback() } }() _, err = tx.Exec("INSERT INTO users (email, password) VALUES (?, ?)", email, passwordHash) if err != nil { return err } rows, err := tx.Query("SELECT id FROM users WHERE email = ?", email) if err != nil { return err } defer rows.Close() id := 0 for rows.Next() { err = rows.Scan(&id) if err != nil { return err } } _, err = tx.Exec("INSERT INTO balances (user_id, currency, current_balance) VALUES (?, ?, 0)", id, defaultCurrency) if err != nil { return err } return tx.Commit() }
რისი ნაწილს იყო თქვენი გუნდის პასუხისმგებლობა? რაზე იყო პასუხისმგებელი?