@@ -178,28 +178,31 @@ bool CPythonManager::Initialize( void )
178
178
// using PyFile_FromFd. This is kinda weird since GetStdHandle is returning valid handles for them
179
179
// but oh well... reconnecting them seems to fix the issues from my testings.
180
180
#ifdef _WIN32
181
- object sys = python::import (" sys" );
182
- object io_open = python::import (" io" ).attr (" open" );
181
+ // This fix currently only works for dedicated servers, but crashes on listen servers.
182
+ if (engine->IsDedicatedServer ()) {
183
+ object sys = python::import (" sys" );
184
+ object io_open = python::import (" io" ).attr (" open" );
183
185
184
- object stdin_ = sys.attr (" stdin" );
185
- if (stdin_.is_none ())
186
- {
187
- DevMsg (1 , MSG_PREFIX " stdin is None... reconnecting.\n " );
188
- sys.attr (" stdin" ) = sys.attr (" __stdin__" ) = io_open (" CONIN$" , " rt" );
189
- }
190
-
191
- object stdout_ = sys.attr (" stdout" );
192
- if (stdout_.is_none ())
193
- {
194
- DevMsg (1 , MSG_PREFIX " stdout is None... reconnecting.\n " );
195
- sys.attr (" stdout" ) = sys.attr (" __stdout__" ) = io_open (" CONOUT$" , " wt" );
196
- }
197
-
198
- object stderr_ = sys.attr (" stderr" );
199
- if (stderr_.is_none ())
200
- {
201
- DevMsg (1 , MSG_PREFIX " stderr is None... reconnecting.\n " );
202
- sys.attr (" stderr" ) = sys.attr (" __stderr__" ) = io_open (" CONERR$" , " wt" );
186
+ object stdin_ = sys.attr (" stdin" );
187
+ if (stdin_.is_none ())
188
+ {
189
+ DevMsg (1 , MSG_PREFIX " stdin is None... reconnecting.\n " );
190
+ sys.attr (" stdin" ) = sys.attr (" __stdin__" ) = io_open (" CONIN$" , " rt" );
191
+ }
192
+
193
+ object stdout_ = sys.attr (" stdout" );
194
+ if (stdout_.is_none ())
195
+ {
196
+ DevMsg (1 , MSG_PREFIX " stdout is None... reconnecting.\n " );
197
+ sys.attr (" stdout" ) = sys.attr (" __stdout__" ) = io_open (" CONOUT$" , " wt" );
198
+ }
199
+
200
+ object stderr_ = sys.attr (" stderr" );
201
+ if (stderr_.is_none ())
202
+ {
203
+ DevMsg (1 , MSG_PREFIX " stderr is None... reconnecting.\n " );
204
+ sys.attr (" stderr" ) = sys.attr (" __stderr__" ) = io_open (" CONERR$" , " wt" );
205
+ }
203
206
}
204
207
#endif
205
208
0 commit comments