# Calling readline(stdin) inside \_\_init\_\_() freezes

**URL:** <https://discourse.julialang.org/t/calling-readline-stdin-inside-init-freezes/21771>\
**Category:** New to Julia\
**Tags:** question\
**Created:** [March 12, 2019, 7:21am UTC](https://discourse.julialang.org/t/calling-readline-stdin-inside-init-freezes/21771 "2019-03-12T07:21:02Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![yash](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yash/32/8353_2.png) [@yash](https://discourse.julialang.org/u/yash)\
**Post date:** [March 12, 2019, 7:21am UTC](https://discourse.julialang.org/t/calling-readline-stdin-inside-init-freezes/21771/1 "2019-03-12T07:21:02Z")

</div>

what is the problem with this code?  
when I run it, it stops for user input due to `readline` but as I enter something it freezes.  
And when I used `Ctrl + C`, it showed a warning.

```julia
WARNING: Force throwing a SIGINT

```

```julia
module A

    function __init__ ()
        load = (readline(stdin) === "true") ? true : false
        if load
            print("ok")
        end
    end

end

using .A

```

---

<div class="post-metadata">

**Author:** ![BeastyBlacksmith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/beastyblacksmith/32/4741_2.png) [@BeastyBlacksmith](https://discourse.julialang.org/u/BeastyBlacksmith)\
**Post date:** [March 12, 2019, 10:55am UTC](https://discourse.julialang.org/t/calling-readline-stdin-inside-init-freezes/21771/2 "2019-03-12T10:55:08Z")

</div>

Is this in Atom or command line REPL?  
It works for me as expected at a command line REPL if I replace `===` by `==`.  
AFAIK `readline` is broken in Atom.

---

<div class="post-metadata">

**Author:** ![yash](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yash/32/8353_2.png) [@yash](https://discourse.julialang.org/u/yash)\
**Post date:** [March 12, 2019, 11:02am UTC](https://discourse.julialang.org/t/calling-readline-stdin-inside-init-freezes/21771/3 "2019-03-12T11:02:05Z")

</div>

This is in atom.  
What else can I use in atom.

---

<div class="post-metadata">

**Author:** ![BeastyBlacksmith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/beastyblacksmith/32/4741_2.png) [@BeastyBlacksmith](https://discourse.julialang.org/u/BeastyBlacksmith)\
**Post date:** [March 12, 2019, 11:06am UTC](https://discourse.julialang.org/t/calling-readline-stdin-inside-init-freezes/21771/4 "2019-03-12T11:06:44Z")

</div>

Depends on your purpose. `readavailable` does work for me most of the times, but is less convenient if you want to catch more than one character.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [March 12, 2019, 11:37am UTC](https://discourse.julialang.org/t/calling-readline-stdin-inside-init-freezes/21771/5 "2019-03-12T11:37:54Z")

</div>

[Relevant issue](https://github.com/JunoLab/Juno.jl/issues/118).

Note that you can still use `readline`, but it’s not very intuitive:  
 ![Peek%202019-03-12%2012-25](https://global.discourse-cdn.com/julialang/original/3X/c/1/c1ae12518e846087cdeee2bf6e8ad6d3e4700a3a.gif)

---

<div class="post-metadata">

**Author:** ![yash](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yash/32/8353_2.png) [@yash](https://discourse.julialang.org/u/yash)\
**Post date:** [March 12, 2019, 12:35pm UTC](https://discourse.julialang.org/t/calling-readline-stdin-inside-init-freezes/21771/6 "2019-03-12T12:35:25Z")

</div>

Actually , My problem is that I am not able to use `readline()` inside ` __init__ ()`.  
Outside `__init()__` , `readline()` works fine.  
I just want to take an argument from user when I `import` my custom `module` is there any other way to do so??
