---
title: "A Proposal for Non-Cooperative Goroutine Preemption"
publication: "Go Weekly"
issue: 204
published_at: "2018-03-29"
canonical_url: "https://golangweekly.com/issues/204"
---

Golang Weekly 204   . 

[Read this on the Web](https://golangweekly.com/issues/204) 

[Golang Weekly](https://golangweekly.com) Issue 204 — March 29, 2018     

Featured [Interface Values Are Valueless](https://www.ardanlabs.com/blog/2018/03/interface-values-are-valueless.html) A somewhat mind-blowing look at how Go uses interfaces to support classic polymorphism. William Kennedy [Go Issues: Like godoc.org, But for Issues](https://goissues.org/) Currently only supports the stdlib and golang.org-based packages. Go Issues [Redis 4.0 with Memory Mapping](http://www.redisgreen.net/?utm_source=goweekly&utm_medium=email&utm_campaign=2018a&utm_content=primary&utm_term=r4+memorymap) Try Redis 4.0 with HA and memory analysis features from RedisGreen. RedisGreensponsored[![\](https://copm.s3.amazonaws.com/356b7949.png)](http://www.redisgreen.net/?utm_source=goweekly&utm_medium=email&utm_campaign=2018a&utm_content=primary&utm_term=r4+memorymap) [A Proposal for Package Versioning in Go](https://blog.golang.org/versioning-proposal) We linked to the [more academic proposal](https://github.com/golang/proposal/blob/master/design/24301-versioned-go.md) last week, but now there’s a more accessible writeup and explanation on the official Go blog. Russ Cox [A Proposal for Non-Cooperative Goroutine Preemption](https://github.com/golang/proposal/blob/master/design/24543-non-cooperative-preemption.md) Go’s runtime allows co-operative context switches to occur during the initial stages of running a function, but there are edge cases where this can cause latency issues. This proposal suggests an approach that would allow non-cooperative context switches to safely occur at any point. Austin Clements [Go 1.10.1 and Go 1.9.5 Released](https://groups.google.com/d/msg/golang-announce/IkPkOF8JqLs/TFBbWHJYAwAJ) Minor releases that include fixes to the compiler, runtime, go command, and numerous packages (including net/http and crypto/tls). Andrew Bonventre Jobs [GCP/Go Backend Engineer (New York, NY w/ Relocation Assistance)](https://jobs.madhive.com) Wanna build cool products in the heat of New York on Google Cloud, Big Data & Stellar blockchain? 100% Go stack. MadHive [Go Expert? Sign Up for Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-golangweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-19591) Create your profile and we’ll connect you with top companies looking for talented back-end developers. Vettery In Brief [Web Scraping with Go](https://www.devdungeon.com/content/web-scraping-go) tutorial Code samples for fetching and scanning Web pages. Nano Dano [Goroutines, Channels, and WaitGroups](https://www.danmrichards.com/blog/2018/03/26/goroutines-channels-and-waitgroups/) tutorial Concurrency may be easier in Go, but so is creating deadlocks. Dan Richards [How-To: Low-Risk Continuous Delivery and Deployment 📦](https://try.rollbar.com/low-risk-continuous-delivery-guide/?utm_source=email-nl&utm_medium=email-nl&utm_campaign=email-nl) Deploying to production can be filled with uncertainty. Reduce risks w/ the right culture and tooling to deploy early and often. [Download Guide](https://try.rollbar.com/low-risk-continuous-delivery-guide/?utm_source=email-nl&utm_medium=email-nl&utm_campaign=email-nl). ROLLBARsponsored [Numeric Optimization in Go with Nelder-Mead and Gonum](https://www.vividcortex.com/blog/numeric-optimization-in-golang-with-nelder-mead-and-gonum) tutorial The example uses gonum to fit a line to a dataset of points. VividCortex [Writing Slack Bots in Go](https://x-team.com/blog/writing-slackbots-with-goroutines/) tutorial X-Team [Code Like the Go Team](https://talks.bjk.fyi/bketelsen/talks?p=gcru18-best#/) slidedeck Brian Ketelsen [Advanced Testing with Go](https://www.youtube.com/watch?v=yszygk1cpEc) video Mitchell Hashimoto [On-Demand Webinar: Golang for Cloud Computing Deployments](https://hazelcast.com/resources/golang-hazelcast-imdg/) Hazelcastsponsored [The Ideas That Shaped Go](https://medium.com/@dgryski/the-ideas-that-shaped-go-21850a74295f) opinion Damian Gryski [Developers Weigh in on Net Neutrality, the EU's GDPR, and Other Topics](https://blog.digitalocean.com/currents-march-2018/?utm_source=paid_newsletter+golang+weekly&utm_medium=display&utm_campaign=2018_Brand&utm_content=3-29-2018+golang+weekly+cooperpress) DigitalOceansponsored [gokrazy: A Pure-Go Userland for Raspberry Pi 3 Appliances](https://gokrazy.org/) tools No C runtime, no console, no systemd, just gokrazy (and its web interface) and your Go application. gokrazy [vim-go 1.17 Released: The Go Development Plugin for Vim](https://github.com/fatih/vim-go/releases/tag/v1.17) tools Fatih Arslan [Zerolog: A Zero Allocation, Chainable JSON Logger](https://github.com/rs/zerolog) code Olivier Poitrey [Oragono: An IRC Server Written in Go](https://github.com/oragono/oragono) code Jeremy Latt [Soup 1.1: Web Scraping in Go, Inspired by BeautifulSoup](https://github.com/anaskhan96/soup) code Makes it really easy to grab HTML pages, dig around the elements, and extract any info. 1.1 released yesterday. Anas Khan [Grace: Handle Recover, Panic, and Errors in A Graceful Way](https://github.com/oxequa/grace) code Has multiple error support, basic filters, and custom handlers. Oxequa [gemacs: A Lightweight Emacs Written in Pure Go](https://github.com/glycerine/gemacs) code Jason E.​ Aten, Ph.​D.​ [GoCV Release: 'This One Goes to 0.11'](https://gocv.io/blog/2018-03-26-this-one-goes-to-0.11/) code GoCV is a computer vision library for Go that uses OpenCV. GoCV [A (Very) Simple Go Blockchain Implementation](https://github.com/dradtke/go-blockchain) code Damien Radtke    

Golang Weekly is curated by [Peter Cooper](https://twitter.com/peterc) and [Glenn Goodrich](https://twitter.com/ruprict) [Read this issue on the Web](https://golangweekly.com/issues/204) [See our archives](https://golangweekly.com/issues) [Change your email address](*|UPDATE_PROFILE|*)  [Stop getting this newsletter](*|UNSUB|*)  

Published by [Cooperpress](https://cooperpress.com/)
Fairfield Enterprise Centre, Lincoln Way, Louth, LN11 0LS, UK
