# difference between calling maxima lib and maxima process

This question came up after reading answer here timeout-does-not-work-with-maxima-ok-with-others/

So I thought to make new question.

Why does the following return back from maxima right away, without hanging (it is unevaluated integral, which is OK, since it could not do it) but sage does not hang

```
sage: var('x')
sage: r=maxima(sqrt(x^2 + 1)*arctan(x)^2)
sage: r.integrate(x)
'integrate(sqrt(_SAGE_VAR_x^2+1)*atan(_SAGE_VAR_x)^2,_SAGE_VAR_x)
```

But when doing the following, it hangs

```
sage: integrate(sqrt(x^2 + 1)*arctan(x)^2,x,algorithm="maxima")
```

I understand now that the first call was to the maxima process. While the second was to the maxim lib linked to sage process itself?

But should not the maxima code be the same? Then why does the first call not hang, while the second one does? I have expected both to hang.

Using SageMath version 8.3.beta5, Release Date: 2018-06-09