Concurrency made easy - GopherCon SG 2017

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ม.ค. 2025

ความคิดเห็น • 10

  • @wangfenjin
    @wangfenjin 6 ปีที่แล้ว +19

    For why close the error channel: Because if you don't close the error channel, the last return statement maybe blocked forever if there is no value in the chan. Receive from a closed chan will return immediately even if it's empty.

  • @FrenchPirate83
    @FrenchPirate83 6 ปีที่แล้ว +1

    Minor, but could sem not have been a chan struct{} instead of a chan int?

  • @able2663
    @able2663 3 ปีที่แล้ว

    nice sharing.

  • @remariorichards8237
    @remariorichards8237 7 ปีที่แล้ว

    hi, why did you not close the error channel as well?

    • @niharrathod
      @niharrathod 6 ปีที่แล้ว

      Same question. Any idea why?

    • @wangfenjin
      @wangfenjin 6 ปีที่แล้ว +11

      Because if you don't close the error channel, the last return statement maybe blocked forever if there is no value in the chan. Receive from a closed chan will return immediately even if it's empty.

    • @niharrathod
      @niharrathod 6 ปีที่แล้ว

      Thanks Fengin

  • @mikei4min
    @mikei4min 7 ปีที่แล้ว +5

    By the way Dave Cheney is a great author - dave.cheney.net/!

  • @欧阳楚-h4e
    @欧阳楚-h4e 5 ปีที่แล้ว

    fatal error: all goroutines are asleep - deadlock!

  • @老撒-m7b
    @老撒-m7b 6 ปีที่แล้ว

    i think it's OK if not close errchan