Are ipcRenderer.invoke() calls subject to race conditions?

With send(), I was about to implement a per-channel locking queue on renderer side to ensure no simultaneous requests are made on the same channel from the same window (otherwise reply listeners could be confused). Would I need that with invoke()?

If two ipcRenderer.invoke() calls on the same channel (but with different payloads) happen near simultaneously, is it guaranteed that main thread responses will be appropriately sorted on renderer thread side?