Very interesting. I'm not used to looking at Go code from the perspective
of an implementer of Go.

Somebody should contribute a comment about this upstream :)

On Thu, Jun 15, 2017 at 10:34 AM Ian Lance Taylor <i...@golang.org> wrote:

> On Thu, Jun 15, 2017 at 10:28 AM, Tyler Compton <xavi...@gmail.com> wrote:
> > Why not just panic, though? And why the infinite loop, I wonder?
>
> The runtime is a special case in many ways, and this is among the more
> special parts.  This loop exists to catch problems while testing new
> ports.  If that loop is ever reached, something has gone badly wrong:
> the exit call should have caused the program to exit.  We can't assume
> that panic is working.  We can't really assume that anything is
> working.  What we want to do is stop the program.  Since exit failed,
> it's possible that a nil dereference will succeed.  If that fails too,
> we still have to do something, so we just loop.  We can't return
> because this is the main function that started the program; there is
> nothing to return to.
>
> Ian
>
> > On Thu, Jun 15, 2017 at 9:56 AM Aldrin Leal <ald...@leal.eng.br> wrote:
> >>
> >> Force a panic in case exit fails?
> >>
> >> --
> >> -- Aldrin Leal, <ald...@leal.eng.br> / http://about.me/aldrinleal
> >>
> >> On Thu, Jun 15, 2017 at 4:54 AM, <goodwin.law...@gmail.com> wrote:
> >>>
> >>> Hey,
> >>>
> >>> Learning golang at the moment and came across this at the end of func
> >>> main() in proc.go in the golang source tree.
> >>>
> >>> exit(0)
> >>> for {
> >>> var x *int32
> >>> *x = 0
> >>> }
> >>>
> >>> Ln 198 - 202 https://golang.org/src/runtime/proc.go
> >>>
> >>> How is the for loop ever reached and what's the purpose of the infinite
> >>> loop, zeroing memory?
> >>>
> >>> Thanks,
> >>>
> >>> Goodwin
> >>>
> >>> --
> >>> You received this message because you are subscribed to the Google
> Groups
> >>> "golang-nuts" group.
> >>> To unsubscribe from this group and stop receiving emails from it, send
> an
> >>> email to golang-nuts+unsubscr...@googlegroups.com.
> >>> For more options, visit https://groups.google.com/d/optout.
> >>
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups
> >> "golang-nuts" group.
> >> To unsubscribe from this group and stop receiving emails from it, send
> an
> >> email to golang-nuts+unsubscr...@googlegroups.com.
> >> For more options, visit https://groups.google.com/d/optout.
> >
> > --
> > Tyler Compton
> > Software Engineering
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "golang-nuts" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to golang-nuts+unsubscr...@googlegroups.com.
> > For more options, visit https://groups.google.com/d/optout.
>
-- 
Tyler Compton
Software Engineering

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to