In bsec_integration.c sample code, the while(1) loop in bsec_iot_loop() provides an example of implementation of the library's workflow. The blocking period (sleep() in the example) could alternatively be used to complete other tasks.
If we take a look at the implementation of the BSEC Arduino library, the run() function is non-blocking, and calling BSEC only if the expected period was elapsed since the previous call. Could such a method be implemented in your project to cover both http polling and BSEC in a single loop? The only requirement for BSEC to run properly would be that the next run() call should happen within the expected sampling period (i.e. the http polling should not be blocking either).
If the above doesn't cover your use-case, feel free to share some code snippet if possible to have a deep look.
... View more