feat:fix when debugging,log cannot show on terminal

This commit is contained in:
pengfeizhou 2021-02-23 16:57:56 +08:00 committed by osborn
parent f44a0824b3
commit 149826ae12
4 changed files with 22 additions and 5 deletions

View File

@ -1,3 +1,18 @@
/*
* Copyright [2019] [Doric.Pub]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package pub.doric.devkit; package pub.doric.devkit;
import pub.doric.devkit.remote.DoricRemoteJSExecutor; import pub.doric.devkit.remote.DoricRemoteJSExecutor;
@ -9,6 +24,7 @@ public class DoricDebugJSEngine extends DoricJSEngine {
public DoricDebugJSEngine(WSClient wsClient) { public DoricDebugJSEngine(WSClient wsClient) {
super(); super();
this.wsClient = wsClient; this.wsClient = wsClient;
this.getRegistry().registerMonitor(new DoricDevMonitor());
} }
@Override @Override

View File

@ -163,12 +163,10 @@ - (DoricAsyncResult *)createContext:(NSString *)contextId script:(NSString *)scr
- (DoricAsyncResult *)destroyContext:(NSString *)contextId { - (DoricAsyncResult *)destroyContext:(NSString *)contextId {
DoricAsyncResult *ret = [[DoricAsyncResult alloc] init]; DoricAsyncResult *ret = [[DoricAsyncResult alloc] init];
__weak typeof(self) _self = self; NSString *theContextId = self.theContextId;
[self.jsExecutor ensureRunOnJSThread:^{ [self.jsExecutor ensureRunOnJSThread:^{
__strong typeof(_self) self = _self;
if (!self) return;
@try { @try {
if ([contextId isEqualToString:self.theContextId]) { if ([contextId isEqualToString:theContextId]) {
[DoricDev.instance stopDebugging:NO]; [DoricDev.instance stopDebugging:NO];
} }
[ret setupResult:@YES]; [ret setupResult:@YES];

View File

@ -23,6 +23,7 @@
#import "DoricContext.h" #import "DoricContext.h"
#import "DoricDebugJSEngine.h" #import "DoricDebugJSEngine.h"
#import "DoricRemoteJSExecutor.h" #import "DoricRemoteJSExecutor.h"
#import "DoricDevMonitor.h"
@interface DoricDebugJSEngine () @interface DoricDebugJSEngine ()
@property(nonatomic, weak) DoricWSClient *wsClient; @property(nonatomic, weak) DoricWSClient *wsClient;
@ -33,6 +34,7 @@ @implementation DoricDebugJSEngine
- (instancetype)initWithWSClient:(DoricWSClient *)wsClient { - (instancetype)initWithWSClient:(DoricWSClient *)wsClient {
if (self = [super init]) { if (self = [super init]) {
_wsClient = wsClient; _wsClient = wsClient;
[self.registry registerMonitor:[DoricDevMonitor new]];
} }
return self; return self;
} }

View File

@ -24,7 +24,8 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface DoricDev : NSObject @interface DoricDev : NSObject
@property(nonatomic, strong) DoricWSClient *wsClient; @property(nonatomic, strong, nullable) DoricWSClient *wsClient;
+ (instancetype)instance; + (instancetype)instance;
- (void)openDevMode; - (void)openDevMode;