In general it is limited by the memory available at your system (coroutines allocated memory an use it as stack).
Another limitation can be the max. virtual memory size enforced in you environment (RLIMIT_AS,  /etc/security/limits.conf etc.)