title: Infinite loop in redux-saga with multiple puts
body: <p>I have a watcher function listening to an action.
  Why does this give me an infinite loop?</p>
  
  <pre><code>export function* watchFetchBookRequest() {
    yield takeLatest(FETCH_BOOK_REQUEST, handleFetchBookRequest)
  }
  
  export function* handleFetchBookRequest(action) {
    try {
      const response = yield call(axios.get, "http://myapicall.com")
      yield put({type: LOADING_START})
      yield put({type: FETCH_BOOK_SUCCESS, payload: response.data})
      yield put({type: LOADING_STOP})
    } catch (error) {
      yield put({type: FETCH_BOOK_FAILURE})
    }
  }
  </code></pre>
  
  <p>What is curious is that if I remove <code>yield put({type: LOADING_START})</code> the loop is gone.</p>