title: What's the difference behind normal function call and pcall
body: <p>I am using lua and I know pcall is for protected calling and my question is if both ways of calling all come down to the same C code. e.g.</p>
  
  <pre><code>function a(arg)
     ...
  end
  </code></pre>
  
  <p>normal calling:</p>
  
  <pre><code>a(arg)
  </code></pre>
  
  <p>protected call:</p>
  
  <pre><code>pcall(a, arg)
  </code></pre>
  
  <p>Actually I am using 'lua_lock/lua_unlock' to protect the lua_State from corrupting. And form the source (lua 5.1.4) I can see 'lua_pcall' is calling 'lua_lock/lua_unlock', but I am not sure if normal way of function call is also based on 'lua_pcall' or using 'lua_lock/lua_unlock'? If not, does it mean that I have to change all the function calling to 'pcall(...)' to get benefit from 'lua_lock/lua_unlock'?</p>
  
  <p>Could someone explain? Thank you</p>